cil
cil copied to clipboard
C Intermediate Language
Implements parsing of `asm goto` statements for #81 and tracking if a asm statement is basic or advanced as required for my thesis. This change requires https://github.com/bottbenj/analyzer/commit/e3af268163594212468a490abf9318c10ee9a803 in analyzer. This...
Maybe we should document the set of [GCC extensions](https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions) that are supported at some point, but I'm more interested now in a demand-driven push to list stuff that are essential...
In #72 we disabled the merging of inline functions. One of the reasons being a slowdown claimed by an old comment: https://github.com/goblint/cil/blob/c47bbbdb442b4d50dac5a0879404ab3b5592170a/src/mergecil.ml#L65-L68 It would be useful to figure out the...
Adds support for C11 to Goblint (see #13). **This is work done by @coslu for his Bachelor's thesis.** --- ### Cherry-picked - [x] #48 - [x] #58 - [x] #80...
Sometimes, particularly when dealing with code that CIL produced from code that contained a switch, we produce spurious warnings `Warning: Body of function test falls-through and cannot find an appropriate...
Some `__builitn`s were identiefied as missing during https://github.com/goblint/analyzer/pull/528. These should be added to CIL.
I'm wondering if maybe we should do constant folding for the static assert expressions. After all, aren't they supposed to be constant-foldable? It might be useful for catching some CIL...
Our current support for `_Atomic` is lacking in that certain types are not supported (e.g. `_Atomic(int*)`). See also: https://github.com/goblint/cil/pull/61#discussion_r780962416
Static functions with a name ending in `__extinline` are handled incorrectly, when a prototype is provided for them. ~~~C static int bla__extinline(); static int bla__extinline() { return 0; } int...
This can be helpful for understanding how `C` code is represented by `Cil`.