Back to bug 1986836
| Who | When | What | Removed | Added |
|---|---|---|---|---|
| Red Hat Bugzilla | 2021-07-28 12:36:29 UTC | Pool ID | sst_platform_tools_rhel_9 | |
| Red Hat One Jira (issues.redhat.com) | 2021-07-28 12:40:13 UTC | Link ID | Red Hat Issue Tracker RHELPLAN-91311 | |
| Marek Polacek | 2021-07-28 12:41:09 UTC | Blocks | 1986838 | |
| Marek Polacek | 2021-07-28 12:43:12 UTC | Blocks | 1986841 | |
| Marek Polacek | 2021-07-28 12:55:51 UTC | Status | NEW | ASSIGNED |
| Keywords | Bugfix, Triaged | |||
| Doc Text | Important: if this rebase also contains *enhancements* (or contains only enhancements), select the correct option from the Doc Type drop-down list. Rebase package(s) to version: 11.2 Highlights and important bug fixes: | |||
| Doc Type | If docs needed, set a value | Rebase: Bug Fixes Only | ||
| Václav Kadlčík | 2021-07-28 13:04:57 UTC | CC | vkadlcik | |
| QA Contact | qe-baseos-tools-bugs | vkadlcik | ||
| Marek Polacek | 2021-07-29 16:49:41 UTC | Fixed In Version | gcc-11.2.1-1.el9 | |
| Status | ASSIGNED | MODIFIED | ||
| Martin Cermak | 2021-07-30 07:45:09 UTC | CC | mcermak | |
| Florian Weimer | 2021-08-02 07:07:44 UTC | Blocks | 1988950 | |
| Florian Weimer | 2021-08-02 11:02:36 UTC | Fixed In Version | gcc-11.2.1-1.el9 | |
| Florian Weimer | 2021-08-02 11:40:16 UTC | Fixed In Version | gcc-11.2.1-2.1.el9 | |
| Martin Cermak | 2021-08-03 14:33:59 UTC | Status | MODIFIED | VERIFIED |
| QA Contact | vkadlcik | mcermak | ||
| Petr Kovar | 2021-08-16 13:13:38 UTC | Docs Contact | otikhomi | |
| Pavel Najman | 2021-09-20 09:05:39 UTC | Pool ID | sst_platform_tools_rhel_9 | sst_pt_gcc_glibc_rhel_9 |
| Oss Tikhomirova | 2021-10-19 03:51:34 UTC | Doc Type | Rebase: Bug Fixes Only | Enhancement |
| Oss Tikhomirova | 2021-10-26 05:49:12 UTC | Doc Text | Important: if this rebase also contains *enhancements* (or contains only enhancements), select the correct option from the Doc Type drop-down list. Rebase package(s) to version: 11.2 Highlights and important bug fixes: | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2, which provides numerous bug fixes and improvements. |
| Oss Tikhomirova | 2021-11-10 09:46:10 UTC | Doc Text | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2, which provides numerous bug fixes and improvements. | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The C++ library `libstdc++` has improved C++17 support now. * Several new C++20 features are implemented. Note that C++20 support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The C++ front end has experimental support for some of the upcoming C++23 draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. |
| Lenka Špačková | 2021-11-10 18:25:59 UTC | Doc Text | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The C++ library `libstdc++` has improved C++17 support now. * Several new C++20 features are implemented. Note that C++20 support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The C++ front end has experimental support for some of the upcoming C++23 draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new C++20 features are implemented. Note that C++20 support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The C++ front end has experimental support for some of the upcoming C++23 draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. |
| Lenka Špačková | 2021-11-10 18:47:40 UTC | Doc Text | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new C++20 features are implemented. Note that C++20 support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The C++ front end has experimental support for some of the upcoming C++23 draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. |
| Vratislav Hutsky | 2021-12-07 21:30:47 UTC | Status | VERIFIED | CLOSED |
| Resolution | --- | CURRENTRELEASE | ||
| Last Closed | 2021-12-07 21:30:47 UTC | |||
| Jacob Taylor Valdez | 2022-05-04 07:53:52 UTC | CC | jvaldez | |
| Doc Text | .GCC 11.2 is available RHEL 9 Beta is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. | .GCC 11.2 is available RHEL 9 is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. |
||
| Jacob Taylor Valdez | 2022-05-16 07:27:16 UTC | Doc Text | .GCC 11.2 is available RHEL 9 is distributed with GCC version 11.2. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. |
| Docs Contact | otikhomi | jvaldez | ||
| Jacob Taylor Valdez | 2022-05-16 09:56:48 UTC | Doc Text | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. (link:https://bugzilla.redhat.com/show_bug.cgi?id=1870016[BZ#1870016]) *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mpower10` command-line option (link:https://bugzilla.redhat.com/show_bug.cgi?id=1870028[BZ#1870028], link:https://bugzilla.redhat.com/show_bug.cgi?id=1870025[BZ#1870025]) |
| Flags | needinfo?(mpolacek) | |||
| Lenka Špačková | 2022-05-16 14:36:36 UTC | Doc Text | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. (link:https://bugzilla.redhat.com/show_bug.cgi?id=1870016[BZ#1870016]) *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mpower10` command-line option (link:https://bugzilla.redhat.com/show_bug.cgi?id=1870028[BZ#1870028], link:https://bugzilla.redhat.com/show_bug.cgi?id=1870025[BZ#1870025]) | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mpower10` command-line option |
| Lenka Špačková | 2022-05-16 15:27:14 UTC | Flags | needinfo?(dbayly) | |
| CC | dbayly | |||
| Marek Polacek | 2022-05-16 15:41:36 UTC | Flags | needinfo?(mpolacek) | |
| Doc Text | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mpower10` command-line option | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mcpu=power10` command-line option |
||
| Jacob Taylor Valdez | 2022-05-16 16:05:00 UTC | Flags | needinfo?(mpolacek) | |
| Marek Polacek | 2022-05-16 16:10:11 UTC | Flags | needinfo?(mpolacek) | |
| Lenka Špačková | 2022-05-16 16:23:23 UTC | Doc Text | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* * The following Intel CPUs are supported: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mcpu=power10` command-line option | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* //* The following Intel CPUs are recognized: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mcpu=power10` command-line option |
| Lenka Špačková | 2022-05-17 08:37:32 UTC | Doc Text | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. //to be confirmed it applies to rhel9beta //* The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* //* The following Intel CPUs are recognized: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mcpu=power10` command-line option | .GCC 11.2.1 is available RHEL 9 is distributed with GCC version 11.2.1. Notable bug fixes and enhancements include: *General improvements* * GCC now defaults to the DWARF Version 5 debugging format. * Column numbers shown in diagnostics represent real column numbers by default and respect multicolumn characters. * The straight-line code vectorizer considers the whole function when vectorizing. * A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression. * Interprocedural optimization improvements: ** A new IPA-modref pass, controlled by the `-fipa-modref` option, tracks side effects of function calls and improves the precision of points-to analysis. ** The identical code folding pass, controlled by the `-fipa-icf` option, was significantly improved to increase the number of unified functions and reduce compile-time memory use. * Link-time optimization improvements: ** Link-time optimization (LTO) enables the compiler to perform various optimizations across all translation units of your program by using its intermediate representation at link time. For more information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/developing_c_and_cpp_applications_in_rhel_9/index#ref_link-time-optimization_using-libraries-with-gcc[Link time optimization]. ** Memory allocation during linking was improved to reduce peak memory use. * Using a new `GCC_EXTRA_DIAGNOSTIC_OUTPUT` environment variable in IDEs, you can request machine-readable “fix-it hints” without adjusting build flags. * The static analyzer, run by the `-fanalyzer` option, is improved significantly with numerous bug fixes and enhancements provided. *Language-specific improvements* *C family* * C and C++ compilers support non-rectangular loop nests in OpenMP constructs and the allocator routines of the OpenMP 5.0 specification. * Attributes: ** The new `no_stack_protector` attribute marks functions that should not be instrumented with stack protection (`-fstack-protector`). ** The improved `malloc` attribute can be used to identify allocator and deallocator API pairs. * New warnings: ** `-Wsizeof-array-div`, enabled by the `-Wall` option, warns about divisions of two `sizeof` operators when the first one is applied to an array and the divisor does not equal the size of the array element. ** `-Wstringop-overread`, enabled by default, warns about calls to string functions that try to read past the end of the arrays passed to them as arguments. * Enhanced warnings: ** `-Wfree-nonheap-object` detects more instances of calls to deallocation functions with pointers not returned from a dynamic memory allocation function. ** `-Wmaybe-uninitialized` diagnoses the passing of pointers and references to uninitialized memory to functions that take `const`-qualified arguments. ** `-Wuninitialized` detects reads from uninitialized dynamically allocated memory. *C* * Several new features from the upcoming C2X revision of the ISO C standard are supported with the `-std=c2x` and `-std=gnu2x` options. For example: ** The `[[nodiscard]]` standard attribute is supported. ** The `__has_c_attribute` preprocessor operator is supported. ** Labels may appear before declarations and at the end of a compound statement. *C++* * The default mode is changed to `-std=gnu++17`. * The pass:[C++] library `pass:[libstdc++]` has improved C++17 support now. * Several new pass:[C++20] features are implemented. Note that pass:[C++20] support is experimental. + For more information about the features, see link:https://gcc.gnu.org/projects/cxx-status.html#cxx20[C++20 Language Features]. * The pass:[C++] front end has experimental support for some of the upcoming pass:[C++23] draft features. * New warnings: ** `-Wctad-maybe-unsupported`, disabled by default, warns about performing class template argument deduction on a type with no deduction guides. ** `-Wrange-loop-construct`, enabled by `-Wall`, warns when a range-based for loop is creating unnecessary and resource inefficient copies. ** `-Wmismatched-new-delete`, enabled by `-Wall`, warns about calls to operator delete with pointers returned from mismatched forms of operator new or from other mismatched allocation functions. ** `-Wvexing-parse`, enabled by default, warns about the most vexing parse rule: the cases when a declaration looks like a variable definition, but the C++ language requires it to be interpreted as a function declaration. *Architecture-specific improvements* *The 64-bit ARM architecture* * The Armv8-R architecture is supported through the `-march=armv8-r` option. * GCC can autovectorize operations performing addition, subtraction, multiplication, and the accumulate and subtract variants on complex numbers. *AMD and Intel 64-bit architectures* //* The following Intel CPUs are recognized: Sapphire Rapids, Alder Lake, and Rocket Lake. * New ISA extension support for Intel AVX-VNNI is added. The `-mavxvnni` compiler switch controls the AVX-VNNI intrinsics. * AMD CPUs based on the znver3 core are supported with the new `-march=znver3` option. * Three microarchitecture levels defined in link:https://gitlab.com/x86-psABIs/x86-64-ABI[the x86-64 psABI supplement] are supported with the new `-march=x86-64-v2`, `-march=x86-64-v3`, and `-march=x86-64-v4` options. *IBM Z architectures* * GCC 11.2.1 defaults to the IBM z14 processor. *IBM Power Systems* * GCC 11.2.1 defaults to the IBM POWER9 processor. * The GCC compiler now supports POWER10 instructions with the new `-mcpu=power10` command-line option |
| Lenka Špačková | 2022-05-17 08:38:31 UTC | CC | lkuprova | |
| Mark O'Brien | 2023-07-18 14:25:01 UTC | Pool ID | sst_pt_glibc_rhel_9 | sst_pt_gcc_rhel_9 |
Back to bug 1986836