GCC 14.1 has already been released and these are its news

gcc

The GNU Compiler Collection is a set of compilers created by the GNU project. GCC is free software and is distributed by the Free Software Foundation under the GPL general public license.

La new version of GCC 14.1 has already been released and among its improvements and changes that stand out the most, the new version offers improvements in static analysisor, as well as security improvements, performance optimization improvements, improvements to the libstdc++ runtime library, among other things.

GCC 14.1 is tagged as the first major release of the new GCC 14.x branch and following the version numbering scheme, version 14.0 was used during development and, shortly before the release of GCC 14.1, the GCC 15.0 branch had already been split, from which the next major version, GCC 15.1, would be formed .

What's new in GCC 14.1?

In this new version of GCC 14.1 Static analysis has been improved for the C language through the "-fanalyzer" option, is that in the analysis of operations with strings it has been added infinite loop detection with "-Wanalyzer-infinite-loop» and added specific warnings for input validation issues with «-Wanalyzer-tainted-*«. The warning "-Wanalyzer-out-of-bounds" has also been improved to detect buffer overflows, In addition, support for the SARIF format has been expanded through the option -fdiagnostics-format=, making it easy to generate detailed reports for more advanced static analyses.

Another new feature that GCC 14.1 presents are the improvements to the libstdc++ runtime library, since support has been added for features such as std::stacktrace and std::format, as well as for optimized input/output operations through std::print and std::println.

In addition, they have been introduced new smart pointer handling capabilities with std::out_ptr and std::inout_ptr, as well as improvements in conversion tools such as std::to_string and std::to_wstring, providing developers with a more complete set of tools for data management and formatting operations.

Functions related to C++23 have been added, such as support for the "Deducing this" mechanism, which allows the use of parameters with the "this" attribute in templates and finds out the category of the expression for which the function of a class is called, has also been implemented in a similar way. requirement that converts all functions that call functions with the consteval attribute to consteval functions

As well C++26 related features were added, for example, it is possible to use string literals in a context where they are not used to initialize an array of characters and do not terminate in the resulting code, also added the ability to use multiple placeholder variables named "_" and implicit conversions of enumerated values ​​in arithmetic calculations have been deprecated.

Of the Other changes and improvements that were introduced in GCC 14.1:

  • New options like «–enable-host-pie» to compile executable files in PIE mode and «–enable-host-bind-now» for additional link options.
  • Added option «-finline-stringops» to enable online expansion of features such as memcmp, memcpy, memmove and memset, even when they are not necessary for optimization.
  • Significant improvements have been made to support for OpenMP with the inclusion of options such as -fopenmp-allocators and directives like defaultmap and indirect.
  • Added initial support for the OpenMP 6.0 specification preview and continued implementation of the OpenMP 5.0, 5.1, and 5.2 standards.
  • Improved implementation of the OpenACC 2.7 and 3.2 parallel programming specifications to offload operations to GPUs and specialized processors such as NVIDIA PTX.
  • Improved libstdc++ support for the C++20, C++23 and C++26 standards.
  • GCC extension support that allowed a flexible array member to be specified not at the end of a structure has been deprecated
  • Expanded AArch64 architecture backend support for different CPUs and extensions such as Arm SME and SME2.
  • Added support for Cortex-M52 CPUs on the ARM architecture backend.
  • Added support for AMD CPUs based on the Zen 5 core and other Intel architectures
  • Support improvements for LoongArch, AVR and RISC-V.
  • Improvements to diagnostic output in JSON-based SARIF format for static analysis results and warnings.
  • For C code compiled to standards newer than C89, some C99-derived constructs now produce errors instead of warnings to improve detection of potential problems.

Finally, if you are interested in being able to know more about it, you can consult the details in the following link.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: Miguel Ángel Gatón
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.