GCC 7 Release Series
Changes, New Features, and Fixes

This page is a brief summary of some of the huge number of improvements in GCC 7. For more information, see the Porting to GCC 7 page and the full GCC documentation.

Caveats

General Optimizer Improvements

New Languages and Language specific improvements

OpenACC support in C, C++, and Fortran continues to be maintained and improved. See the OpenACC and Offloading wiki pages for further information.

Ada

BRIG (HSAIL)

Support for processing BRIG 1.0 files was added in this release. BRIG is a binary format for HSAIL (Heterogeneous System Architecture Intermediate Language). The BRIG front end can be used for implementing HSAIL "finalizers" (compilation of HSAIL to a native ISA) for GCC-supported targets. An implementation of an HSAIL runtime library, libhsail-rt is also included.

C family

C

C++

Runtime Library (libstdc++)

Fortran

Go

Java (GCJ)

The GCC Java front end and associated libjava runtime library have been removed from GCC.

libgccjit

The libgccjit API gained support for marking calls as requiring tail-call optimization via a new entry point: gcc_jit_rvalue_set_bool_require_tail_call.

libgccjit performs numerous checks at the API boundary, but if these succeed, it previously ignored errors and other diagnostics emitted within the core of GCC, and treated the compile of a gcc_jit_context as having succeeded. As of GCC 7 it now ensures that if any diagnostics are emitted, they are visible from the libgccjit API, and that the the context is flagged as having failed.

New Targets and Target Specific Improvements

AArch64

ARC

ARM

AVR

IA-32/x86-64

NVPTX

PowerPC / PowerPC64 / RS6000

S/390, System z, IBM z Systems, IBM Z

RISC-V

RX

Basic support for atomic built-in function has been added. It is currently implemented by flipping interrupts off and on as needed.

SH

SPARC

Operating Systems

AIX

Fuchsia

RTEMS

Other significant improvements

GCC 7.1

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.1 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

GCC 7.2

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.2 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

Target Specific Changes

SPARC

Operating Systems

RTEMS

GCC 7.3

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.3 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

Target Specific Changes

SPARC

Operating Systems

RTEMS

GCC 7.4

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.4 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).

GCC 7.5

This is the list of problem reports (PRs) from GCC's bug tracking system that are known to be fixed in the 7.5 release. This list might not be complete (that is, it is possible that some PRs that have been fixed are not listed here).