The mainline GCC compiler received support today for UBSAN, the Undefined Behavior Sanitizer.
Besides Address Sanitizer
, Thread Sanitizer
, and other "sanitizers" that have been added to LLVM, there's also the Undefined Behavior Sanitizer. As the name implies, it's a fast and compatible undefined behavior checker. The runtime cost is said to be low and doesn't affect the ABI.
Additional sanitizer documentation can be found via the Clang documentation
and this feature is exposed in the compilers via the -fsanitize=undefined
Porting the Undefined Behavior Sanitizer to GCC has been going on for a few weeks and as of today it was committed to its SVN repository. The commit bearing the "UBSAN" support can be found by this Git mirror commit
The Undefined Behavior Sanitizer comes after the Address Sanitizer and Thread Sanitizer were already ported from LLVM to GCC. The UBSAN support will be apart of the GCC 4.9 compiler release, which already has a number of other new features