The CodeWarrior compiler accepts many of the
extensions to the C language that the
GCC (Gnu Compiler Collection) tools allow. Source code that uses these extensions does not conform to the ISO/IEC 9899-1990 C ("C90") standard.
Initializing Automatic Arrays and Structures
When the GCC extensions setting is on, array and structure variables that are local to a function and have the automatic storage class may be initialized with values that do not need to be constant.
The sizeof() Operator
When the GCC extensions setting is on, the sizeof() operator computes the size of function and void types. In both cases, the sizeof() operator evaluates to 1.
Statements in Expressions
When the GCC extensions setting is on, expressions in function bodies may contain statements and definitions.
Redefining Macros
When the GCC extensions setting is on, macros may be redefined with the #define directive without first undefining them with the #undef directive.
The typeof() Operator
When the GCC extensions setting is on, the compiler recognizes the typeof() operator. This compile-time operator returns the type of an expression.
Void and Function Pointer Arithmetic
The ISO/IEC 9899-1990 C Standard does not accept arithmetic expressions that use pointers to void or functions. With GCC extensions on, the compiler accepts arithmetic manipulation of pointers to void and functions.
The __builtin_constant_p() Operator
When the GCC extensions setting is on, the compiler recognizes the __builtin_constant_p() operator. This compile-time operator takes a single argument and returns 1 if the argument is a constant expression or 0 if it is not.
Forward Declarations of Static Arrays
When the GCC extensions setting is on, the compiler will not issue an error when you declare a static array without specifying the number of elements in the array if you later declare the array completely.