GCC 13 Release Series
Changes, New Features, and Fixes#
This page is a “brief” summary of some of the huge number of improvements in GCC 13. You may also want to check out our Porting to GCC 13 page and the full GCC documentation.
Note: GCC 13 has not been released yet, so this document is a work-in-progress.
Caveats#
The support for the
cr16-elf
,tilegx*-linux
,tilepro*-linux
,hppa[12]*-*-hpux10*
,hppa[12]*-*-hpux11*
andm32c-rtems
configurations has been removed.Support for emitting the STABS debugging format (including the
-gstabs
and-gxcoff
options) has been removed. (This means the dbx debugger is no longer supported, either.)Legacy debug info compression option
-gz=zlib-gnu
was removed and the option is ignored right now.New debug info compression option value
-gz=zstd
has been added.
General Improvements#
-
Reverse offload is now supported and the all clauses to the
requires
directive are now accepted; however, therequires_offload
,unified_address
andunified_shared_memory
clauses cause that the only available device is the initial device (the host).The following OpenMP 5.1 features have been added: the
omp_all_memory
reserved locator, theinoutset
modifier to thedepend
clause, thenowait
clause for thetaskwait
directive and theomp_target_is_accessible
,omp_target_memcpy_async
,omp_target_memcpy_rect_async
andomp_get_mapped_ptr
API routines. Fortran now supports non-rectangular loop nests, which were added for C/C++ in GCC 11.Initial support for OpenMP 5.2 features have been added: Support for
firstprivate
andallocate
clauses on thescope
construct and the OpenMP 5.2 syntax of thelinear
clause; the new enum/constantsomp_initial_device
andomp_invalid_device
; and optionally omitting the map-type intarget enter/exit data
. Theenter
clause (as alias forto
) has been added to thedeclare target
directive.For user defined allocators requesting high bandwidth or large capacity memspaces or interleaved partitioning, the memkind library is used, if available at runtime.
AddressSanitizer defaults to
detect_stack_use_after_return=1
on GNU/Linux targets. For compatibility, it can be disabled withenv ASAN_OPTIONS=detect_stack_use_after_return=0
.Link-time optimization improvements:
LTO supports the newly added jobserver of GNU make jobserver that uses named pipes (
--jobserver-style=fifo
) by default.If make’s jobserver is active, parallel LTO WPA streaming communicates with it and thus avoids system overcommitting.
New Languages and Language specific improvements#
C#
C++#
Several C++23 features have been implemented:
New warnings:
-Wself-move
warns when a value is moved to itself withstd::move
(PR81159)
The
-Wpessimizing-move
and-Wredundant-move
warnings have been extended to warn in more contexts.
Runtime Library (libstdc++)#
Improved experimental support for C++23, including:
Additions to the
<ranges>
header:views::zip
,views::zip_transform
,views::adjacent
,views::adjacent_transform
views::pairwise
,views::slide
,views::chunk
,views::chunk_by
.
Support for the
<experimental/scope>
header from v3 of the Library Fundamentals Technical Specification.
New Targets and Target Specific Improvements#
AMD Radeon (GCN)#
Support for the Instinct MI200 series devices (
`gfx90a
<https://gcc.gnu.org/onlinedocs/gcc/AMD-GCN-Options.html>`__) has been added.
arm#
The STAR-MC1 CPU is now supported through the
star-mc1
argument to the-mcpu
and-mtune
options.
IA-32/x86-64#
For both C and C++ the
__bf16
type is supported on x86 systems with SSE2 and above enabled.
NVPTX#
The default value for the
`-march
<https://gcc.gnu.org/onlinedocs/gcc/Nvidia-PTX-Options.html>`__ option can be now changed when building GCC using the`--with-arch=
<https://gcc.gnu.org/install/specific.html#nvptx-x-none>`__ configure option. GCC’s target libraries are then build both withsm_30
and the specified target architecture. If not specified, GCC defaults tosm_30
.
Operating Systems#
Other significant improvements#
For questions related to the use of GCC, please consult these web pages and the GCC manuals. If that fails, the gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer list at gcc@gcc.gnu.org. All of our lists have public archives. 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 2022-10-03.