7.6.3 Options for Controlling the C Dialect

The following options define the kind of C dialect used by the compiler.

Table 7-7. C Dialect Control Options
OptionDefinition
-ansiSupport all (and only) ANSI-standard C programs.
-aux-info filenameOutput to the given file name prototype declarations for all functions declared and/or defined in a translation unit, including those in header files. This option is silently ignored in any language other than C. Besides declarations, the file indicates, in comments, the origin of each declaration (source file and line), whether the declaration was implicit, prototyped or unprototyped (I, N for new or O for old, respectively, in the first character after the line number and the colon), and whether it came from a declaration or a definition (C or F, respectively, in the following character). In the case of function definitions, a K&R-style list of arguments followed by their declarations is also provided, inside comments, after the declaration.
-menable-fixed[=rounding mode]Enable fixed-point variable types and arithmetic operation support. Optionally, set the default rounding mode to one of truncation, conventional, or convergent. If the rounding mode is not specified, the default is truncation.
-ffreestandingAssert that compilation takes place in a freestanding 
environment. This implies -fno-builtin. A freestanding environment is one in which the standard library may not exist, and program startup may not necessarily be at main. The most obvious example is an OS kernel. This is equivalent to -fno-hosted.
-fno-asmWill not recognize asm, inline or typeof as a keyword, so that code can use these words as identifiers. You can use the keywords __asm__, __inline__ and __typeof__ instead.

-ansi implies -fno-asm.

-fno-builtin

-fno-builtin-function

Will not recognize built-in functions that do not begin with __builtin_ as prefix.
-fsigned-charLet the type char be signed, like signed char. (This is the default.)
-fsigned-bitfields

-funsigned-bitfields

-fno-signed-bitfields

-fno-unsigned-bitfields

These options control whether a bit-field is signed or unsigned, when the declaration does not use either signed or unsigned. By default, such a bit-field is signed, unless -traditional is used, in which case bit-fields are always unsigned.
-funsigned-charLet the type char be unsigned, like unsigned char.