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-rtemsconfigurations has been removed.Support for emitting the STABS debugging format (including the
-gstabsand-gxcoffoptions) has been removed. (This means the dbx debugger is no longer supported, either.)Legacy debug info compression option
-gz=zlib-gnuwas removed and the option is ignored right now.New debug info compression option value
-gz=zstdhas been added.
General Improvements#
-
Reverse offload is now supported and the all clauses to the
requiresdirective are now accepted; however, therequires_offload,unified_addressandunified_shared_memoryclauses cause that the only available device is the initial device (the host).The following OpenMP 5.1 features have been added: the
omp_all_memoryreserved locator, theinoutsetmodifier to thedependclause, thenowaitclause for thetaskwaitdirective and theomp_target_is_accessible,omp_target_memcpy_async,omp_target_memcpy_rect_asyncandomp_get_mapped_ptrAPI 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
firstprivateandallocateclauses on thescopeconstruct and the OpenMP 5.2 syntax of thelinearclause; the new enum/constantsomp_initial_deviceandomp_invalid_device; and optionally omitting the map-type intarget enter/exit data. Theenterclause (as alias forto) has been added to thedeclare targetdirective.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=1on 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-movewarns when a value is moved to itself withstd::move(PR81159)
The
-Wpessimizing-moveand-Wredundant-movewarnings 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_transformviews::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-mc1argument to the-mcpuand-mtuneoptions.
IA-32/x86-64#
For both C and C++ the
__bf16type 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_30and 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.