Currently, the functions affected include abort , abs , alloca , cos , exit , fabs , ffs , labs , memcmp , memcpy , sin , sqrt , strcmp , strcpy , and strlen . The resulting code is often both smaller and faster, but since the function calls no longer appear as such, you cannot set a breakpoint on those calls, nor can you change the behavior of the functions by linking with a different library. Assert that compilation takes place in a hosted environment. This implies -fbuiltin . A hosted environment is one in which the entire standard library is available, and in which main has a return type of int .
Examples are nearly everything except a kernel.
Assert that compilation takes place in a freestanding environment. 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. Support ANSI C trigraphs. Attempt to support some aspects of traditional C compilers.