HomeFreeBSD

Welcome GCC 8.1, the first release of the GCC 8 series!

Description

Welcome GCC 8.1, the first release of the GCC 8 series!

https://gcc.gnu.org/gcc-8/changes.html has a comprehensive overview of
many changes in this release and https://gcc.gnu.org/gcc-8/porting_to.html
addresses issues you may encounter porting to this new version.

To provide a brief overview of some of the more noticable changes:

On the optimization front inter-procedural optimizations (IPO) and profile
driven optimizations (PDO) have been further improved and some classic loop
nest optimization passes have been added: -floop-unroll-and-jam performs
outer loop unrolling and fusing of the inner loop copies, while
-floop-interchange exchanges loops in a loop nest to improve data locality.
These, as well as an improved -ftree-loop-distribution pass are enabled by
default at -O3 and above.

A new pragma "GCC unroll" has been implemented in the C family of languages
as well as Fortran to provide finer-grained control over loop unrolling.

DWARF debugging information in the presence of link-time optimization now
properly preserves language-specific information. The -gcolumn-info
option is now enabled by default, so column information is part of DWARF
debugging information in addition to filenames and line numbers.

The C family compilers have gained options -Wmultistatement-macros
(warning about unsafe macros expanding to multiple statements used
as a body of a statement such as if, else, while, switch, or for),
-Wstringop-truncation (warning for calls to bounded string manipulation
functions such as strncat, strncpy, and stpncpy that might either truncate
the copied string or leave the destination unchanged), -Wcast-function-type
(warning when a function pointer is cast to an incompatible function pointer,
enabled by -Wextra), and -Wsizeof-pointer-div (warning for suspicious
divisions of the size of a pointer by the size of the elements it points
to, which usually is an indication of a mistaken way to calculate the
number of elements in an array, enabled by -Wall), among others.

The existing -Warray-bounds and -Wrestrict options have been enhanced to
detect many more instances, as have -Wformat-overflow and -Wformat-truncation.

Error messages and warnings better highlight the locations of issues in
many cases, and helpful "fix it" hints are provided more often.

The C++ ABI (-fabi-version=12) introduces minor changes in a few fringe
cases. The GCC 7 ABI can still be selected with -fabi-version=11.

The C++ frontend as well as libstdc++ feature experimental support for
many C++2a features and Fortran has seen a large number of improvements.

Lots and lots of improvements for Arm and AArch64 targets, as well as
the usual dose on x86 and powerpc.

PR: 229681

Details

Provenance
geraldAuthored on
Parents
rP474649: * Updated to 6.3.2
Branches
Unknown
Tags
Unknown