GCC 16 Release Series: Changes, New Features, and Fixes
GCC 16 introduces numerous improvements, including enhanced Link-Time Optimization, speculative devirtualization, and expanded vectorization capabilities. The release adds support for newer OpenMP and OpenACC standards, with new API routines and memory allocation features. Some changes, such as the removal of the 'json' diagnostics format and updates to int8_t handling on Solaris, may affect compatibility.
- ▪GCC 16 improves Link-Time Optimization with better handling of toplevel asm statements.
- ▪The vectorizer now supports uncounted loops, peeling for alignment, and more efficient code generation for loops with early breaks.
- ▪OpenMP 6.0 introduces omp_target_memset and omp_target_memset_async API routines, while OpenACC 3.4 allows named constants in data clauses in Fortran.
- ▪The -pthread option no longer predefines _REENTRANT on Solaris, and the 'json' format for -fdiagnostics-format= has been removed in favor of SARIF.
- ▪Documentation has been updated to include missing options, modernize attribute syntax, and reorganize content for clarity.
Opening excerpt (first ~120 words) tap to expand
GCC 16 Release SeriesChanges, New Features, and Fixes This page is a "brief" summary of some of the huge number of improvements in GCC 16. You may also want to check out our Porting to GCC 16 page and the full GCC documentation. Caveats int8_t etc. are now signed char on Solaris for conformance with the C99 standard. However, this is an incompatible change. See the porting notes for more information. The -pthread option no longer predefines _REENTRANT on Solaris. See the porting notes for more information. The so-called "json" format for -fdiagnostics-format= has been removed in this release. Users seeking machine-readable diagnostics from GCC should use SARIF.
…
Excerpt limited to ~120 words for fair-use compliance. The full article is at Gnu.