There is lots to report this month:
* A port to the Andes NDS32 architecture has been accepted into GCC. Unfortunately the accompanying binutils port has yet to be accepted.
* GCC now has a pointer checking system to detect out of bounds pointer references. Enabled via the new -fcheck-pointer-bounds command line option it adds extra code to compiled functions when a special set of built-in functions are used. Here is a small example:
__wrap_malloc (size_t n)
void * p = (void *) __real_malloc (n);
return __builtin___bnd_set_ptr_bounds (p, n);
This tells GCC that the returned pointer refers to memory between p and p + n - 1. (If pointer checking is not enable, the built-in function still works, it just returns its first argument).
There is a whole set of these built-in functions to cover various different situations. This has the advantage that the boundary checking code is only added when a pointer affected by one of these built-ins is used.
In related news support for the old mudflap pointer boundary checker has now been removed from GCC.
* GCC has a new warning option -Wdate-time This generates warning when the macros __TIME__, __DATE__ or __TIMESTAMP__ are encountered in the source code as they might prevent bit-wise-identical reproducible compilations.
* A new GCC command line optimization option -flive-range-shrinkage attempts to improve register usage by reducing the range over which a particular value or variable has to be held in a register. This is usually helpful on fast processors with small or moderate size register sets.
* Another new GCC command line option -fisolate-erroneous-paths detects pieces of code which trigger erroneous or undefined behaviour. The optimization then isolates these regions from the main control flow and replaces them with a trap.
* The RS6000/PowerPC port's -mabi= command line option can accept two new parameters:
These control the selection of the old ELFv1 ABI and the new ELFv2 ABI. The v1 ABI is the default for big-endian PowerPC targets and the v2 ABI is the default for little-endian PowerPC targets.