- New versions of the
usel builtin functions
for signed and unsigned
long long as well as
- CompCert now defines the C11 type
a type whose alignment requirement is at least as strict (large) as that of every scalar type.
- Extended configuration editor to allow specification of additional preprocessor options.
- String literals are now accepted as l-values and their address can be taken.
- CompCert now rejects invalid unnamed parameters in function definitions.
Improved handling of
_Alignof now only accepts types as arguments and returns the natural alignment in bytes.
_Alignas is now rejected in illegal places such as typedefs,
bit-fields, functions and register class variables.
- More GCC-compatible handling of the
aligned attribute, analogously to the
- CompCert now allows
_Alignas(0) intending no alignment change.
- New diagnostics for:
- tentative static definitions with incomplete types
- unknown attributes used for function parameters
- alignment requests that reduce the alignment below the natural alignment
- external function declarations after definitions
- definitions and uses of static variables in nonstatic inline functions
- nested structs with flexible array members and structures containing only flexible array members
- illegal uses of
_Alignas as outlined above
- Diagnostics for C11 extensions are now disabled by default.
They can be re-enabled by specifying “
- Improved diagnostics for type-qualified arrays.
- Improved the wording and unified the formatting of various diagnostics messages.
New configurable check for correct placement of symbols in sections.
- Local re-definitions of typedefs are now allowed.
- CompCert now rejects non-standard applications of the
restrict type qualifier.
- Improved support for type-qualified arrays.
- Improved support for
long long in extended assembler statements for the hybrid PowerPC backend.
- CompCert now inserts
NOP instructions after AIS annotations when the annotation is followed by a label.
- CompCert no longer accepts the comma operator in constant expressions.
- Fix for abortion in assembling pass caused by overly large branch distances
on 64-bit PowerPC platforms. The overflow could be triggered by the use of large 64-bit
integer immediate constants in the code between the branch and its branch target.
- Fixed the passing of the option
-u to the linker to mark a symbol as undefined.