There have been several developments in the GNU Toolchain in the
course of the last month:
* The binutils 2.24 branch has been created. A release is expected to happen within the next month.
* A port of GCC to the Texas Instruments MSP430 series of processors has been contributed.
* A new feature has been added to the C compiler. Enabled via the command line option:
This adds code to the generated executable to detect undefined mathematical behavior, e.g.: division by zero or various overflows. This is similar to the -ftrapv option, but whereas that option causes a trap to occur the -fsanitize=undefined option generates a diagnostic message.
* A new feature has been added to the C++ compiler. Enabled via the command line option:
This attempts to convert calls to virtual functions into speculative direct calls. Based on the analysis of the type inheritance graph, determine for a given call the set of likely targets. If the set is small, preferably of size 1, change the call into an conditional deciding on direct and indirect call. The speculative calls enable more optimizations, such as inlining. When they seem useless after further optimization, they are converted back into original form.
* A new C++ warning has been implemented:
This issues a warning when the compiler detects an attempt to delete a pointer to incomplete type. This may cause undefined behavior at runtime. The warning is enabled by default.
* The x86 port of GCC now includes support for the AVX512F, AVX512PF, AVX512ER, AVX512CD, FXSR, XSAVE and XSAVEOPT instruction set extensions.
* The Aarch64 port of GCC now includes support for the CRC extensions to the instruction set.