This page is a "brief" summary of some of the huge number of improvements in GCC 17.
Note: GCC 17 has not been released yet, so this document is a work-in-progress.
See the GNU Offloading and Multi-Processing Project (GOMP) page for general information.
declare
mapper) in C and C++ has been improved.iterator modifier to the
map, to, and from clauses has been
improved for C and C++ and initial support for Fortran added.omp_get_device_distances API
routine has been added that can be used to find the offload devices that
are closest, in terms of NUMA node, to the thread that called the
routine. The multidimensional-information API routines have been added,
albeit GCC currently only supports one spatial dimension; already useful
are the new
omp_get_supported_teams_dim and
omp_get_supported_threads_dim routines that return,
respectively, the maximal number of teams and threads that GCC supports
on a given device.__builtin_call_static_chain and
__builtin_call_code_address can be used to obtain the
static chain and the underlying code address of a nested function.
This allows calling of the nested function indirectly without the use
of a trampoline.
std::format in constexpr functions.std::filesystem support for Windows symlinks,
thanks to Adam Wood.c_f_strpointer intrinsic is now
supported. Additionally, the f_c_string intrinsic
has been reimplemented to be more efficient.
-Wunused-but-set-variables option is now
also effective for Fortran.
-Wundefined-vars, enabled
by -Wall, warns about variables that are used that
have not been defined (i.e. have no value assigned to them).
-Wunused-read and
-Wunused-intent-out, both
enabled by -Wextra,
warn about variables in READ statements and variables passed to
INTENT(OUT) variables, respectively, whose values are never used.
[[len=spec]]
annotations. The code size is specified in units of 16-bit words and
is set to the sum over all such notes.
The notes can be deactivated with the new command-line option
-mno-asm-len-notes so that the default length applies.
The diagnostic behavior can be adjusted with
-Wasm-len-notes.
-m31 was removed and as a consequence
-mesa support.
-mlra is now ineffective but kept around for
backwards compatibility
Copyright (C) Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
These pages are maintained by the GCC team. Last modified 2026-07-10.