https://gcc.gnu.org/g:1d9871af38fe935a4ca3e2d1f32c876270988d13
commit 1d9871af38fe935a4ca3e2d1f32c876270988d13 Merge: 95d8973a6f8f 023bec174fe6 Author: Peter Bergner <berg...@linux.ibm.com> Date: Mon Apr 28 11:49:24 2025 -0500 ibm: Merge up to top of releases/gcc-12 2025-04-28 Peter Bergner <berg...@linux.ibm.com> Merge up to releases/gcc-12 023bec174fe6acbd4da404d6c8f6b7ff96754e6d Diff: c++tools/ChangeLog | 6 + c++tools/server.cc | 2 + gcc/ChangeLog | 1220 ++++++++++++++++++++ gcc/ChangeLog.ibm | 4 + gcc/DATESTAMP | 2 +- gcc/ada/ChangeLog | 78 ++ gcc/ada/checks.adb | 10 +- gcc/ada/exp_aggr.adb | 21 +- gcc/ada/gnatvsn.ads | 3 +- gcc/ada/libgnarl/s-taprop__dummy.adb | 11 +- gcc/ada/libgnat/a-ngcoar.adb | 42 +- gcc/ada/libgnat/a-ngrear.adb | 109 +- gcc/ada/sem_res.adb | 2 +- gcc/ada/sem_util.adb | 3 - gcc/ada/sem_util.ads | 3 + gcc/ada/version.c | 5 +- gcc/auto-profile.cc | 4 +- gcc/cfgexpand.cc | 9 + gcc/combine.cc | 15 +- gcc/common/config/i386/cpuinfo.h | 16 + gcc/common/config/i386/i386-common.cc | 6 +- gcc/common/config/i386/i386-cpuinfo.h | 2 + gcc/config.gcc | 14 +- gcc/config/aarch64/aarch64-c.cc | 5 + gcc/config/aarch64/aarch64-sve-builtins-base.cc | 36 +- gcc/config/aarch64/aarch64-sve.md | 20 +- gcc/config/aarch64/aarch64.cc | 76 +- gcc/config/aarch64/aarch64.md | 12 +- gcc/config/alpha/alpha.md | 10 +- gcc/config/arm/arm.cc | 5 +- gcc/config/arm/arm_mve.h | 4 + gcc/config/arm/arm_mve_types.h | 4 + gcc/config/arm/mve.md | 2 +- gcc/config/avr/avr-dimode.md | 26 +- gcc/config/avr/avr.cc | 76 +- gcc/config/avr/avr.md | 7 +- gcc/config/i386/avx512dqintrin.h | 16 +- gcc/config/i386/avx512fp16intrin.h | 4 +- gcc/config/i386/avx512vlbwintrin.h | 4 +- gcc/config/i386/avx512vlintrin.h | 2 +- gcc/config/i386/constraints.md | 2 +- gcc/config/i386/driver-i386.cc | 5 + gcc/config/i386/i386-builtin.def | 24 +- gcc/config/i386/i386-c.cc | 7 + gcc/config/i386/i386-expand.cc | 14 + gcc/config/i386/i386-options.cc | 12 +- gcc/config/i386/i386.cc | 85 +- gcc/config/i386/i386.h | 7 +- gcc/config/i386/i386.md | 14 +- gcc/config/i386/sse.md | 469 +++----- gcc/config/i386/x86-tune-costs.h | 155 ++- gcc/config/i386/x86-tune-sched.cc | 61 + gcc/config/i386/x86-tune.def | 31 +- gcc/config/i386/{znver4.md => zn4zn5.md} | 817 ++++++++++++- gcc/config/pa/pa.cc | 1 + gcc/config/pa/pa.md | 38 +- gcc/config/pa/pa32-regs.h | 2 +- gcc/config/rs6000/amo.h | 2 +- gcc/config/rs6000/rs6000-builtin.cc | 10 +- gcc/config/rs6000/rs6000-builtins.def | 4 +- gcc/config/rs6000/rs6000-logue.cc | 47 +- gcc/config/rs6000/rs6000-p8swap.cc | 8 +- gcc/config/rs6000/rs6000.cc | 17 +- gcc/config/rs6000/rs6000.h | 2 + gcc/config/rs6000/rs6000.md | 6 +- gcc/config/s390/3931.md | 7 - gcc/config/s390/s390-protos.h | 1 - gcc/config/s390/s390.cc | 99 +- gcc/config/s390/s390.md | 20 +- gcc/config/s390/vector.md | 81 +- gcc/config/sh/sh.cc | 12 +- gcc/cp/ChangeLog | 54 + gcc/cp/constexpr.cc | 7 + gcc/cp/name-lookup.cc | 5 +- gcc/cp/parser.cc | 1 - gcc/cp/pt.cc | 2 + gcc/cp/typeck.cc | 3 +- gcc/cse.cc | 4 +- gcc/d/ChangeLog | 58 + gcc/d/d-codegen.cc | 6 +- gcc/d/d-ctfloat.cc | 6 +- gcc/d/d-longdouble.cc | 12 +- gcc/d/d-port.cc | 4 +- gcc/d/decl.cc | 22 +- gcc/d/expr.cc | 4 +- gcc/d/imports.cc | 6 +- gcc/doc/cpp.texi | 2 +- gcc/doc/extend.texi | 3 + gcc/doc/invoke.texi | 172 +-- gcc/expmed.cc | 4 +- gcc/fold-const.cc | 5 +- gcc/fortran/ChangeLog | 115 ++ gcc/fortran/decl.cc | 7 +- gcc/fortran/gfortran.h | 4 + gcc/fortran/interface.cc | 6 +- gcc/fortran/match.h | 2 +- gcc/fortran/primary.cc | 8 +- gcc/fortran/resolve.cc | 11 + gcc/fortran/simplify.cc | 75 ++ gcc/fortran/trans-array.cc | 87 +- gcc/fortran/trans-decl.cc | 3 +- gcc/fortran/trans-expr.cc | 49 +- gcc/gimple-match-head.cc | 6 + gcc/gimple-range-edge.cc | 10 +- gcc/gimple-ssa-backprop.cc | 10 +- gcc/gimple-ssa-isolate-paths.cc | 23 +- gcc/gimple-ssa-warn-access.cc | 3 +- gcc/ipa-fnsummary.cc | 4 +- gcc/ipa-modref.cc | 52 +- gcc/ipa-prop.cc | 4 +- gcc/lra-remat.cc | 10 +- gcc/match.pd | 14 +- gcc/opt-suggestions.cc | 2 +- gcc/optc-save-gen.awk | 5 + gcc/pointer-query.cc | 11 + gcc/reorg.cc | 38 +- gcc/testsuite/ChangeLog | 895 ++++++++++++++ gcc/testsuite/c-c++-common/cpp/pr115913.c | 7 + gcc/testsuite/c-c++-common/torture/pr116189-1.c | 30 + gcc/testsuite/c-c++-common/torture/pr117912-1.c | 28 + gcc/testsuite/c-c++-common/torture/pr117912-2.c | 28 + gcc/testsuite/c-c++-common/torture/pr117912-3.c | 61 + gcc/testsuite/g++.dg/cpp0x/nsdmi-defer7.C | 13 + gcc/testsuite/g++.dg/cpp1z/constexpr-116676.C | 57 + gcc/testsuite/g++.dg/cpp1z/eval-order13.C | 29 + gcc/testsuite/g++.dg/cpp2a/constexpr-virtual22.C | 22 + gcc/testsuite/g++.dg/ext/pragma-target2.C | 18 + gcc/testsuite/g++.dg/lookup/pr99116-1.C | 2 +- gcc/testsuite/g++.dg/parse/crash77.C | 13 + gcc/testsuite/g++.dg/template/friend84.C | 26 + gcc/testsuite/g++.dg/torture/vect-absu-1.C | 29 + gcc/testsuite/g++.target/arm/pr115485.C | 16 + gcc/testsuite/g++.target/i386/mv29.C | 6 + gcc/testsuite/g++.target/i386/pr119689.C | 44 + gcc/testsuite/g++.target/powerpc/pr106069.C | 2 +- gcc/testsuite/gcc.c-torture/execute/20241029-1.c | 23 + gcc/testsuite/gcc.c-torture/execute/pr111613.c | 29 + gcc/testsuite/gcc.c-torture/execute/pr113787.c | 38 + gcc/testsuite/gcc.c-torture/execute/pr114207.c | 23 + gcc/testsuite/gcc.c-torture/execute/pr115033.c | 35 + gcc/testsuite/gcc.c-torture/execute/pr119071.c | 15 + gcc/testsuite/gcc.dg/ipa/modref-4.c | 34 + gcc/testsuite/gcc.dg/pr115646.c | 14 + gcc/testsuite/gcc.dg/pr116290.c | 18 + gcc/testsuite/gcc.dg/pr116481.c | 13 + gcc/testsuite/gcc.dg/pr116850.c | 12 + gcc/testsuite/gcc.dg/pr116891.c | 47 + gcc/testsuite/gcc.dg/pr117104.c | 12 + gcc/testsuite/gcc.dg/pr117254.c | 10 + gcc/testsuite/gcc.dg/pr117398.c | 17 + gcc/testsuite/gcc.dg/pr119071.c | 45 + gcc/testsuite/gcc.dg/torture/pr114246.c | 11 + gcc/testsuite/gcc.dg/torture/pr115641.c | 29 + gcc/testsuite/gcc.dg/torture/pr116057.c | 20 + gcc/testsuite/gcc.dg/torture/pr116412-1.c | 6 + gcc/testsuite/gcc.dg/torture/pr116585.c | 32 + gcc/testsuite/gcc.dg/torture/pr116768.c | 32 + gcc/testsuite/gcc.dg/torture/pr116922.c | 19 + gcc/testsuite/gcc.dg/torture/pr117119.c | 10 + gcc/testsuite/gcc.dg/torture/pr117243-1.c | 30 + gcc/testsuite/gcc.dg/torture/pr117243-2.c | 34 + gcc/testsuite/gcc.dg/torture/pr117417.c | 16 + gcc/testsuite/gcc.dg/torture/pr117574-1.c | 20 + gcc/testsuite/gcc.dg/torture/pr118476-1.c | 14 + gcc/testsuite/gcc.dg/torture/pr118717.c | 41 + gcc/testsuite/gcc.dg/torture/pr118922-1.c | 57 + gcc/testsuite/gcc.dg/tree-ssa/pr109934.c | 22 + gcc/testsuite/gcc.dg/tree-ssa/pr117142.c | 14 + gcc/testsuite/gcc.dg/vect/pr115669.c | 22 + gcc/testsuite/gcc.dg/vect/pr116125.c | 30 + gcc/testsuite/gcc.dg/vect/pr117307.c | 17 + gcc/testsuite/gcc.dg/vect/pr119399.c | 10 + .../gcc.target/aarch64/acle/bf16_feature.c | 10 + .../gcc.target/aarch64/acle/bf16_sve_feature.c | 10 + .../gcc.target/aarch64/sve/acle/asm/sudot_s32.c | 8 +- .../gcc.target/aarch64/sve/acle/general/cnot_1.c | 23 + .../aarch64/sve/acle/general/whilele_11.c | 31 + .../aarch64/sve/acle/general/whilele_12.c | 34 + .../aarch64/sve/acle/general/whilele_5.c | 2 +- gcc/testsuite/gcc.target/aarch64/sve/pr116238.c | 13 + gcc/testsuite/gcc.target/alpha/pr115526.c | 46 + .../arm/mve/intrinsics/vsetq_lane_su64.c | 63 + gcc/testsuite/gcc.target/arm/simd/mve-vshr.c | 2 + gcc/testsuite/gcc.target/avr/torture/pr87376.c | 60 + .../gcc.target/i386/avx512bw-pr103750-1.c | 3 +- .../gcc.target/i386/avx512bw-vpalignr-1b.c | 18 + .../gcc.target/i386/avx512dq-vfpclasssd-1b.c | 14 + .../gcc.target/i386/avx512dq-vfpclassss-1b.c | 14 + .../gcc.target/i386/avx512dq-vreducesd-1b.c | 16 + .../gcc.target/i386/avx512dq-vreducess-1b.c | 16 + .../gcc.target/i386/avx512fp16-vfpclassph-1c.c | 77 ++ .../gcc.target/i386/avx512vl-valignq-1b.c | 15 + gcc/testsuite/gcc.target/i386/fma-pr116891.c | 19 + gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + gcc/testsuite/gcc.target/i386/pieces-memcpy-10.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memcpy-22.c | 12 + gcc/testsuite/gcc.target/i386/pieces-memcpy-6.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-38.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-40.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-41.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-42.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-43.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-memset-51.c | 12 + gcc/testsuite/gcc.target/i386/pieces-strcpy-2.c | 2 +- gcc/testsuite/gcc.target/i386/pieces-strcpy-3.c | 15 + gcc/testsuite/gcc.target/i386/pr115568.c | 38 + gcc/testsuite/gcc.target/i386/pr115872.c | 16 + gcc/testsuite/gcc.target/i386/pr116043.c | 33 + gcc/testsuite/gcc.target/i386/pr116512.c | 26 + gcc/testsuite/gcc.target/i386/pr116621.c | 43 + gcc/testsuite/gcc.target/i386/pr116839.c | 48 + gcc/testsuite/gcc.target/i386/pr116962.c | 10 + gcc/testsuite/gcc.target/i386/pr117116.c | 18 + gcc/testsuite/gcc.target/i386/pr117159.c | 42 + gcc/testsuite/gcc.target/i386/pr117240_avx.c | 10 + gcc/testsuite/gcc.target/i386/pr117240_avx512f.c | 10 + gcc/testsuite/gcc.target/i386/pr117318.c | 12 + gcc/testsuite/gcc.target/i386/pr117357.c | 7 + gcc/testsuite/gcc.target/i386/pr117418-1.c | 24 + gcc/testsuite/gcc.target/i386/pr118739.c | 50 + gcc/testsuite/gcc.target/i386/pr69482-1.c | 16 + gcc/testsuite/gcc.target/i386/pr69482-2.c | 10 + .../gcc.target/powerpc/mma-builtin-error.c | 11 + gcc/testsuite/gcc.target/powerpc/pr114759-2.c | 17 + gcc/testsuite/gcc.target/powerpc/pr114759-3.c | 21 + gcc/testsuite/gcc.target/powerpc/pr115389.c | 17 + gcc/testsuite/gcc.target/powerpc/pr116415.c | 42 + gcc/testsuite/gcc.target/powerpc/pr97367.c | 13 + gcc/testsuite/gcc.target/s390/pr115860-1.c | 26 + gcc/testsuite/gcc.target/s390/pr118835.c | 21 + .../gcc.target/s390/vector/long-double-asm-abi.c | 2 +- .../gcc.target/s390/vector/long-double-to-i64.c | 2 - gcc/testsuite/gdc.dg/debug/imports/m119817/a.d | 2 + gcc/testsuite/gdc.dg/debug/imports/m119817/b.d | 2 + .../gdc.dg/debug/imports/m119817/package.d | 4 + gcc/testsuite/gdc.dg/debug/pr119817.d | 4 + gcc/testsuite/gdc.dg/pr111650.d | 21 + gcc/testsuite/gdc.dg/pr116961.d | 7 + gcc/testsuite/gdc.dg/pr119139.d | 24 + gcc/testsuite/gdc.test/runnable/test23514.d | 13 + gcc/testsuite/gfortran.dg/character_workout_1.f90 | 8 +- gcc/testsuite/gfortran.dg/cray_pointers_13.f90 | 51 + gcc/testsuite/gfortran.dg/optional_absent_13.f90 | 48 + gcc/testsuite/gfortran.dg/pr100273.f90 | 26 + gcc/testsuite/gfortran.dg/pr108889.f90 | 43 + gcc/testsuite/gfortran.dg/pr109345.f90 | 77 ++ gcc/testsuite/gfortran.dg/pr117763.f90 | 279 +++++ gcc/testsuite/gfortran.dg/pr84868.f90 | 84 ++ gcc/testsuite/gfortran.dg/ptr_func_assign_6.f08 | 89 ++ .../gfortran.dg/string_array_constructor_4.f90 | 59 + gcc/testsuite/gfortran.dg/use_rename_13.f90 | 37 + gcc/testsuite/gnat.dg/matrix1.adb | 16 + gcc/testsuite/gnat.dg/specs/array7.ads | 14 + .../gnat.dg/specs/generic_inst2-child1.ads | 17 + .../gnat.dg/specs/generic_inst2-child2.ads | 10 + gcc/testsuite/gnat.dg/specs/generic_inst2.ads | 11 + gcc/testsuite/lib/target-supports.exp | 2 +- gcc/tree-call-cdce.cc | 2 +- gcc/tree-chrec.cc | 4 +- gcc/tree-data-ref.cc | 24 +- gcc/tree-loop-distribution.cc | 6 +- gcc/tree-sra.cc | 13 +- gcc/tree-ssa-ccp.cc | 23 +- gcc/tree-ssa-dse.cc | 2 + gcc/tree-ssa-forwprop.cc | 6 +- gcc/tree-ssa-loop-ivopts.cc | 3 +- gcc/tree-ssa-loop-niter.cc | 31 +- gcc/tree-ssa-phiopt.cc | 19 +- gcc/tree-ssa-sccvn.cc | 51 +- gcc/tree-ssa-sink.cc | 4 +- gcc/tree-vect-data-refs.cc | 29 +- gcc/tree-vect-generic.cc | 10 +- gcc/tree-vect-slp.cc | 3 + gcc/value-range.cc | 8 - gcc/varasm.cc | 2 + libgcc/ChangeLog | 5 + libgcc/config.host | 2 +- libgomp/ChangeLog | 9 + .../libgomp.oacc-fortran/privatized-ref-2.f90 | 6 - libstdc++-v3/ChangeLog | 263 +++++ libstdc++-v3/config.h.in | 3 + .../config/cpu/aarch64/opt/ext/opt_random.h | 2 +- libstdc++-v3/config/cpu/i486/opt/ext/opt_random.h | 2 +- libstdc++-v3/configure | 2 + libstdc++-v3/configure.ac | 5 +- .../doc/html/manual/using_concurrency.html | 10 + libstdc++-v3/doc/xml/manual/using.xml | 12 + libstdc++-v3/include/bits/allocator.h | 3 + libstdc++-v3/include/bits/basic_string.h | 2 +- libstdc++-v3/include/bits/cow_string.h | 11 +- libstdc++-v3/include/bits/cpp_type_traits.h | 2 +- libstdc++-v3/include/bits/deque.tcc | 3 + libstdc++-v3/include/bits/fs_dir.h | 22 + libstdc++-v3/include/bits/ranges_util.h | 5 +- libstdc++-v3/include/bits/stl_bvector.h | 3 + libstdc++-v3/include/bits/stl_iterator.h | 8 + libstdc++-v3/include/bits/stl_vector.h | 3 + libstdc++-v3/include/bits/vector.tcc | 2 + libstdc++-v3/include/c_compatibility/stdatomic.h | 2 +- libstdc++-v3/include/debug/helper_functions.h | 32 +- libstdc++-v3/include/std/array | 2 +- libstdc++-v3/include/std/span | 10 +- libstdc++-v3/include/std/string_view | 4 +- libstdc++-v3/include/std/valarray | 8 +- libstdc++-v3/include/std/variant | 2 +- libstdc++-v3/include/tr2/dynamic_bitset | 5 +- libstdc++-v3/include/tr2/dynamic_bitset.tcc | 6 +- libstdc++-v3/src/c++11/assert_fail.cc | 10 +- libstdc++-v3/src/c++17/fs_ops.cc | 16 +- libstdc++-v3/src/c++98/istream.cc | 13 +- .../testsuite/20_util/integer_sequence/112473.cc | 1 + .../21_strings/basic_string/allocator/116641.cc | 53 + .../21_strings/char_traits/requirements/113200.cc | 1 + .../array/comparison_operators/106212.cc | 15 + .../23_containers/deque/modifiers/insert/118035.cc | 26 + .../testsuite/23_containers/span/117966.cc | 13 + .../testsuite/23_containers/vector/cons/113841.cc | 35 + .../vector/modifiers/insert/117983.cc | 17 + .../24_iterators/move_iterator/lwg3736.cc | 53 + .../lexicographical_compare_three_way/113960.cc | 1 + .../testsuite/26_numerics/valarray/99117.cc | 17 + .../27_io/basic_istream/ignore/char/93672.cc | 101 ++ .../27_io/basic_istream/ignore/wchar_t/93672.cc | 34 + .../27_io/filesystem/iterators/lwg3480.cc | 17 + .../29_atomics/headers/stdatomic.h/115807.cc | 15 + .../testsuite/std/ranges/subrange/lwg3589.cc | 31 + libstdc++-v3/testsuite/std/time/month/2.cc | 1 + libstdc++-v3/testsuite/std/time/weekday/2.cc | 1 + .../testsuite/tr2/dynamic_bitset/pr115399.cc | 37 + libstdc++-v3/testsuite/util/testsuite_allocator.h | 2 +- 330 files changed, 9224 insertions(+), 1158 deletions(-) diff --cc gcc/ChangeLog.ibm index c79326967144,000000000000..6b71a1ab979d mode 100644,000000..100644 --- a/gcc/ChangeLog.ibm +++ b/gcc/ChangeLog.ibm @@@ -1,55 -1,0 +1,59 @@@ ++2025-04-28 Peter Bergner <berg...@linux.ibm.com> ++ ++ Merge up to releases/gcc-12 023bec174fe6acbd4da404d6c8f6b7ff96754e6d ++ +2024-07-03 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 5f699cb08eed44a903393f601009e9c6d0b59c59 + +2024-06-22 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 218adac0fce6135fcb5c0c56911272687f05872b + +2024-05-29 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 342f577d8ea60c3473a6c1e66ef038b96f99f9d2 + +2024-01-26 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 52dde3e8af9fac2e9c11ce5dfdad1f19546bbb64 + +2023-11-21 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 a285310c50a868d27f63fc0297e56dd5d31a924b + +2023-09-14 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 6ca605af5995abf3d4013e7e146754509b8faddb + +2023-07-31 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 79ebcd30bda2cd00bf442a28717ec50ae0a8cd1d + +2023-04-11 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 908d9c7e6ed4be95d39b7b01056dda365f379947 + +2023-03-27 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 4f41c4ff250709219a7c3eba27a62f8a4689412b + +2022-11-04 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 33561e870dc48966e8c7ede46e95032279a15423 + +2022-10-17 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 fe7d74313736b8e1c30812bc49419f419bdf1c53 + +2022-09-16 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 05cfd7b0677502d06a50ea6ff05d4445e194e3b9 + +2022-08-19 Peter Bergner <berg...@linux.ibm.com> + + Merge up to releases/gcc-12 2d29d7b240d9ca87cbee5d90c846694125d293af + +2022-06-15 Peter Bergner <berg...@linux.ibm.com> + + Create ibm/gcc-12-branch which follows the releases/gcc-12 branch.