https://gcc.gnu.org/g:b71fc8d1382ba569126b3a905cea7927a37e98ff
commit b71fc8d1382ba569126b3a905cea7927a37e98ff Merge: 8678fc697046 323d010fa5d4 Author: Tobias Burnus <tbur...@baylibre.com> Date: Mon Jul 22 12:08:44 2024 +0200 Merge remote-tracking branch 'origin/releases/gcc-14' into devel/omp/gcc-14 Merge up to commit 323d010fa5d (22nd July 2024) Diff: contrib/ChangeLog | 7 + gcc/ChangeLog | 1351 ++ gcc/DATESTAMP | 2 +- gcc/ada/ChangeLog | 20 + gcc/ada/Makefile.rtl | 13 +- gcc/ada/exp_ch6.adb | 11 +- gcc/ada/exp_util.adb | 6 + gcc/ada/sem_ch6.adb | 12 +- gcc/analyzer/ChangeLog | 22 + gcc/analyzer/access-diagram.cc | 3 +- gcc/analyzer/diagnostic-manager.cc | 18 +- gcc/analyzer/infinite-loop.cc | 2 +- gcc/analyzer/infinite-recursion.cc | 2 +- gcc/analyzer/varargs.cc | 2 +- gcc/attribs.cc | 20 +- gcc/builtins.cc | 22 +- gcc/c-family/ChangeLog | 43 + gcc/c-family/c-common.cc | 18 +- gcc/c-family/c-opts.cc | 2 +- gcc/c-family/c-warn.cc | 13 +- gcc/c-family/c.opt | 2 +- gcc/c/ChangeLog | 32 + gcc/c/c-decl.cc | 53 +- gcc/c/c-parser.cc | 4 +- gcc/combine.cc | 6 +- gcc/common/config/i386/cpuinfo.h | 4 +- gcc/common/config/i386/i386-common.cc | 4 +- gcc/common/config/i386/i386-cpuinfo.h | 5 +- gcc/common/config/i386/i386-isas.h | 4 +- gcc/common/config/riscv/riscv-common.cc | 182 +- gcc/config/aarch64/aarch64-c.cc | 6 + gcc/config/aarch64/aarch64-cores.def | 2 + gcc/config/aarch64/aarch64-ldp-fusion.cc | 4 +- gcc/config/aarch64/aarch64-simd.md | 2 - gcc/config/aarch64/aarch64-tune.md | 2 +- gcc/config/alpha/alpha.cc | 12 + gcc/config/alpha/alpha.md | 31 +- gcc/config/alpha/constraints.md | 2 +- gcc/config/arm/arm.cc | 135 +- gcc/config/arm/arm.h | 4 +- gcc/config/arm/arm.md | 8 +- gcc/config/arm/mve.md | 2 +- gcc/config/arm/predicates.md | 5 + gcc/config/arm/sync.md | 4 +- gcc/config/avr/avr-dimode.md | 26 +- gcc/config/avr/avr.cc | 41 +- gcc/config/avr/avr.md | 64 +- gcc/config/i386/i386-expand.cc | 7 + gcc/config/i386/i386-options.cc | 79 +- gcc/config/i386/i386.cc | 236 +- gcc/config/i386/i386.h | 6 +- gcc/config/i386/i386.md | 10 +- gcc/config/i386/mingw-w64.h | 2 + gcc/config/i386/mingw32.h | 2 + gcc/config/i386/x86-tune-costs.h | 10 +- gcc/config/i386/x86-tune.def | 13 +- gcc/config/loongarch/loongarch.cc | 19 +- gcc/config/loongarch/loongarch.h | 7 - gcc/config/mips/mips.cc | 11 +- gcc/config/pa/pa.md | 18 - gcc/config/pa/pa32-linux.h | 5 + gcc/config/riscv/autovec.md | 5 +- gcc/config/riscv/elf.h | 1 + gcc/config/riscv/freebsd.h | 1 + gcc/config/riscv/linux.h | 1 + gcc/config/riscv/riscv-c.cc | 2 +- gcc/config/riscv/riscv-protos.h | 4 + gcc/config/riscv/riscv-subset.h | 12 +- gcc/config/riscv/riscv-target-attr.cc | 119 +- gcc/config/riscv/riscv-vector-builtins.cc | 51 + gcc/config/riscv/riscv.cc | 90 +- gcc/config/riscv/riscv.opt | 6 +- gcc/config/riscv/vector-iterators.md | 6 + gcc/config/riscv/vector.md | 131 +- gcc/config/rs6000/altivec.md | 222 +- gcc/config/rs6000/rs6000-builtin.cc | 2 +- gcc/config/rs6000/rs6000-c.cc | 62 +- gcc/config/rs6000/rs6000-gen-builtins.cc | 72 +- gcc/config/rs6000/rs6000-logue.cc | 7 +- gcc/config/rs6000/rs6000.cc | 29 +- gcc/config/rs6000/rs6000.md | 15 + gcc/config/rs6000/vsx.md | 28 +- gcc/config/s390/3931.md | 7 - gcc/config/s390/s390.cc | 49 +- gcc/config/s390/s390.md | 5 +- gcc/config/s390/vector.md | 6 +- gcc/config/s390/vx-builtins.md | 2 +- gcc/config/sparc/linux64.h | 2 +- gcc/configure | 2 + gcc/configure.ac | 2 + gcc/cp/ChangeLog | 342 + gcc/cp/call.cc | 9 +- gcc/cp/constexpr.cc | 8 +- gcc/cp/cp-tree.h | 12 +- gcc/cp/cxxapi-data.csv | 2 +- gcc/cp/decl.cc | 138 +- gcc/cp/decl2.cc | 7 +- gcc/cp/except.cc | 6 +- gcc/cp/init.cc | 11 +- gcc/cp/lambda.cc | 3 +- gcc/cp/module.cc | 211 +- gcc/cp/name-lookup.cc | 57 + gcc/cp/parser.cc | 10 +- gcc/cp/pt.cc | 100 +- gcc/cp/semantics.cc | 20 +- gcc/cp/std-name-hint.gperf | 2 +- gcc/cp/std-name-hint.h | 2 +- gcc/cp/tree.cc | 11 +- gcc/cp/typeck.cc | 10 +- gcc/cse.cc | 4 +- gcc/doc/install.texi | 36 +- gcc/doc/invoke.texi | 23 +- gcc/doc/tm.texi | 8 + gcc/doc/tm.texi.in | 2 + gcc/expmed.cc | 4 +- gcc/expr.cc | 12 +- gcc/fold-const.cc | 6 +- gcc/fold-mem-offsets.cc | 2 +- gcc/fortran/ChangeLog | 285 + gcc/fortran/dependency.cc | 32 + gcc/fortran/expr.cc | 7 +- gcc/fortran/gfortran.h | 4 + gcc/fortran/iresolve.cc | 4 + gcc/fortran/match.cc | 21 + gcc/fortran/primary.cc | 10 +- gcc/fortran/resolve.cc | 17 +- gcc/fortran/symbol.cc | 117 +- gcc/fortran/trans-array.cc | 52 +- gcc/fortran/trans-decl.cc | 4 +- gcc/fortran/trans-expr.cc | 98 +- gcc/fortran/trans-intrinsic.cc | 85 +- gcc/fortran/trans-stmt.cc | 66 +- gcc/fortran/trans-types.cc | 4 +- gcc/gimple-fold.cc | 12 +- gcc/gimple-lower-bitint.cc | 14 +- gcc/gimple-ssa-sprintf.cc | 20 +- gcc/gimple-ssa-store-merging.cc | 6 +- gcc/gimple-ssa-warn-access.cc | 2 +- gcc/ipa-fnsummary.cc | 4 +- gcc/ira-conflicts.cc | 3 +- gcc/jit/ChangeLog | 9 + gcc/jit/jit-recording.cc | 2 +- gcc/match.pd | 6 +- gcc/objc/ChangeLog | 10 + gcc/objc/objc-next-runtime-abi-02.cc | 5 +- gcc/opt-suggestions.cc | 2 +- gcc/optabs-libfuncs.cc | 4 +- gcc/opts-common.cc | 19 +- gcc/po/ChangeLog | 10 + gcc/po/be.po | 18446 +++++++-------- gcc/po/da.po | 18493 +++++++-------- gcc/po/de.po | 23283 ++++++++----------- gcc/po/el.po | 18456 +++++++-------- gcc/po/es.po | 18579 +++++++-------- gcc/po/fi.po | 18479 +++++++-------- gcc/po/fr.po | 18576 +++++++-------- gcc/po/hr.po | 19111 +++++++-------- gcc/po/id.po | 18497 +++++++-------- gcc/po/ja.po | 18473 +++++++-------- gcc/po/nl.po | 18463 +++++++-------- gcc/po/ru.po | 18554 +++++++-------- gcc/po/sr.po | 18494 +++++++-------- gcc/po/sv.po | 18522 +++++++-------- gcc/po/tr.po | 18496 +++++++-------- gcc/po/uk.po | 18653 +++++++-------- gcc/po/vi.po | 18496 +++++++-------- gcc/po/zh_CN.po | 18533 +++++++-------- gcc/po/zh_TW.po | 18492 +++++++-------- gcc/rust/ChangeLog | 8 + gcc/rust/metadata/rust-imports.cc | 2 +- gcc/target.def | 13 +- gcc/targhooks.cc | 8 + gcc/targhooks.h | 1 + gcc/testsuite/ChangeLog | 1293 + gcc/testsuite/c-c++-common/Warray-compare-3.c | 13 + .../analyzer/out-of-bounds-diagram-pr114899.c | 15 + .../c-c++-common/torture/builtin-clear-padding-1.c | 1 + .../c-c++-common/torture/builtin-clear-padding-2.c | 1 + .../c-c++-common/torture/builtin-clear-padding-3.c | 3 +- .../c-c++-common/torture/builtin-clear-padding-4.c | 4 +- .../c-c++-common/torture/builtin-clear-padding-5.c | 1 + .../c-c++-common/torture/builtin-clear-padding-6.c | 28 + .../c-c++-common/ubsan/signed1bitfield-1.c | 25 + gcc/testsuite/g++.dg/asan/initlist2.C | 16 + gcc/testsuite/g++.dg/cpp0x/alias-decl-77.C | 32 + gcc/testsuite/g++.dg/cpp1y/decltype-auto-103497.C | 2 +- gcc/testsuite/g++.dg/cpp1y/decltype-auto8.C | 22 + gcc/testsuite/g++.dg/cpp1z/array-prvalue3.C | 8 + .../g++.dg/cpp1z/has-unique-obj-representations4.C | 16 + gcc/testsuite/g++.dg/cpp1z/pr115440.C | 8 + gcc/testsuite/g++.dg/cpp23/ext-floating18.C | 26 + gcc/testsuite/g++.dg/cpp26/pr115754.C | 36 + .../g++.dg/cpp2a/class-deduction-aggr14.C | 11 + .../g++.dg/cpp2a/class-deduction-aggr15.C | 23 + .../g++.dg/cpp2a/class-deduction-alias20.C | 22 + .../g++.dg/cpp2a/class-deduction-alias21.C | 38 + .../g++.dg/cpp2a/class-deduction-alias22.C | 14 + .../g++.dg/cpp2a/concepts-partial-spec15.C | 20 + gcc/testsuite/g++.dg/cpp2a/concepts-requires38.C | 14 + gcc/testsuite/g++.dg/cpp2a/lambda-targ5.C | 15 + gcc/testsuite/g++.dg/ext/conv3.C | 13 + gcc/testsuite/g++.dg/modules/enum-12.C | 2 +- gcc/testsuite/g++.dg/modules/friend-5_b.C | 2 +- gcc/testsuite/g++.dg/modules/friend-8_a.H | 23 + gcc/testsuite/g++.dg/modules/friend-8_b.C | 9 + gcc/testsuite/g++.dg/modules/pr114856.h | 12 + gcc/testsuite/g++.dg/modules/pr114856_a.H | 5 + gcc/testsuite/g++.dg/modules/pr114856_b.C | 5 + gcc/testsuite/g++.dg/modules/pr99241_a.H | 3 + gcc/testsuite/g++.dg/modules/pr99241_b.H | 3 + gcc/testsuite/g++.dg/modules/pr99241_c.C | 5 + gcc/testsuite/g++.dg/modules/pr99242_a.H | 3 + gcc/testsuite/g++.dg/modules/pr99242_b.H | 3 + gcc/testsuite/g++.dg/modules/pr99242_c.H | 3 + gcc/testsuite/g++.dg/modules/pr99242_d.C | 7 + gcc/testsuite/g++.dg/modules/shadow-1_b.C | 5 +- gcc/testsuite/g++.dg/modules/timevar-1_a.H | 14 + gcc/testsuite/g++.dg/modules/timevar-1_b.C | 10 + gcc/testsuite/g++.dg/modules/tpl-friend-10_a.C | 15 + gcc/testsuite/g++.dg/modules/tpl-friend-10_b.C | 5 + gcc/testsuite/g++.dg/modules/tpl-friend-10_c.C | 7 + gcc/testsuite/g++.dg/modules/tpl-friend-10_d.C | 8 + gcc/testsuite/g++.dg/modules/tpl-friend-11_a.C | 14 + gcc/testsuite/g++.dg/modules/tpl-friend-11_b.C | 5 + gcc/testsuite/g++.dg/modules/tpl-friend-12_a.C | 10 + gcc/testsuite/g++.dg/modules/tpl-friend-12_b.C | 9 + gcc/testsuite/g++.dg/modules/tpl-friend-12_c.C | 10 + gcc/testsuite/g++.dg/modules/tpl-friend-12_d.C | 8 + gcc/testsuite/g++.dg/modules/tpl-friend-12_e.C | 7 + gcc/testsuite/g++.dg/modules/tpl-friend-12_f.C | 8 + gcc/testsuite/g++.dg/modules/tpl-friend-13_a.C | 13 + gcc/testsuite/g++.dg/modules/tpl-friend-13_b.C | 11 + gcc/testsuite/g++.dg/modules/tpl-friend-13_c.C | 13 + gcc/testsuite/g++.dg/modules/tpl-friend-13_d.C | 7 + gcc/testsuite/g++.dg/modules/tpl-friend-13_e.C | 18 + gcc/testsuite/g++.dg/modules/tpl-friend-13_f.C | 7 + gcc/testsuite/g++.dg/modules/tpl-friend-13_g.C | 11 + gcc/testsuite/g++.dg/modules/tpl-friend-14_a.C | 8 + gcc/testsuite/g++.dg/modules/tpl-friend-14_b.C | 8 + gcc/testsuite/g++.dg/modules/tpl-friend-14_c.C | 7 + gcc/testsuite/g++.dg/modules/tpl-friend-14_d.C | 9 + gcc/testsuite/g++.dg/modules/tpl-friend-9.C | 13 + gcc/testsuite/g++.dg/modules/using-15_a.C | 14 + gcc/testsuite/g++.dg/modules/using-15_b.C | 6 + gcc/testsuite/g++.dg/modules/using-15_c.C | 8 + gcc/testsuite/g++.dg/opt/fmo1.C | 25 + gcc/testsuite/g++.dg/overload/error7.C | 10 + gcc/testsuite/g++.dg/pch/pr115312.C | 2 + gcc/testsuite/g++.dg/pch/pr115312.Hs | 1 + gcc/testsuite/g++.dg/pr113673.C | 14 + gcc/testsuite/g++.dg/pr115232.C | 25 + gcc/testsuite/g++.dg/template/array37.C | 14 + gcc/testsuite/g++.dg/template/linkage5.C | 14 + gcc/testsuite/g++.dg/template/non-dependent32.C | 18 + gcc/testsuite/g++.dg/template/non-dependent33.C | 13 + gcc/testsuite/g++.dg/template/pr95672.C | 2 +- gcc/testsuite/g++.dg/torture/pr115694.C | 13 + gcc/testsuite/g++.dg/torture/vector-subaccess-1.C | 24 + gcc/testsuite/g++.dg/torture/vshuf-mem.C | 27 + gcc/testsuite/g++.dg/tree-ssa/pr109849.C | 3 +- gcc/testsuite/g++.dg/vect/pr115278.cc | 38 + .../g++.dg/vect/vect-novector-pragma_2.cc | 10 + gcc/testsuite/g++.dg/warn/Wsizeof-array-div3.C | 27 + gcc/testsuite/g++.target/i386/pr115351.C | 19 + gcc/testsuite/g++.target/powerpc/pr106069.C | 119 + gcc/testsuite/gcc.c-torture/compile/pr115143-1.c | 21 + gcc/testsuite/gcc.c-torture/compile/pr115143-2.c | 30 + gcc/testsuite/gcc.c-torture/compile/pr115143-3.c | 29 + gcc/testsuite/gcc.c-torture/execute/pr108789.c | 39 + gcc/testsuite/gcc.c-torture/execute/pr113787.c | 38 + gcc/testsuite/gcc.c-torture/execute/pr114965.c | 30 + .../gcc.c-torture/execute/signed1bitfield-1.c | 23 + gcc/testsuite/gcc.dg/asan/pr114956.c | 26 + gcc/testsuite/gcc.dg/asan/pr115172.c | 20 + gcc/testsuite/gcc.dg/bitint-106.c | 29 + gcc/testsuite/gcc.dg/bitint-107.c | 16 + gcc/testsuite/gcc.dg/bitint-108.c | 38 + gcc/testsuite/gcc.dg/pr114493-1.c | 19 + gcc/testsuite/gcc.dg/pr114493-2.c | 26 + gcc/testsuite/gcc.dg/pr114574-1.c | 6 +- gcc/testsuite/gcc.dg/pr114574-2.c | 6 +- gcc/testsuite/gcc.dg/pr114876.c | 34 + gcc/testsuite/gcc.dg/pr114902.c | 23 + gcc/testsuite/gcc.dg/pr114907.c | 27 + gcc/testsuite/gcc.dg/pr114930.c | 9 + gcc/testsuite/gcc.dg/pr114931.c | 10 + gcc/testsuite/gcc.dg/pr115092.c | 16 + gcc/testsuite/gcc.dg/pr115149.c | 16 + gcc/testsuite/gcc.dg/pr115152.c | 17 + gcc/testsuite/gcc.dg/pr115197.c | 14 + gcc/testsuite/gcc.dg/pr115502.c | 9 + gcc/testsuite/gcc.dg/pr115646.c | 13 + gcc/testsuite/gcc.dg/pr83415.c | 2 +- gcc/testsuite/gcc.dg/torture/bitint-71.c | 28 + gcc/testsuite/gcc.dg/torture/pr114998.c | 35 + gcc/testsuite/gcc.dg/torture/pr115701.c | 22 + .../gcc.dg/tree-ssa/builtin-sprintf-warn-1.c | 12 +- gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-26.c | 6 +- gcc/testsuite/gcc.dg/vect/pr115192.c | 28 + gcc/testsuite/gcc.dg/vect/pr115669.c | 22 + gcc/testsuite/gcc.dg/vect/pr115723.c | 25 + gcc/testsuite/gcc.dg/vect/pr115840.c | 11 + gcc/testsuite/gcc.dg/vect/pr115841.c | 42 + gcc/testsuite/gcc.dg/vect/pr115843.c | 41 + .../gcc.target/aarch64/acle/bf16_feature.c | 10 + .../gcc.target/aarch64/acle/bf16_sve_feature.c | 10 + .../gcc.target/aarch64/vector_intrinsics_asm.c | 371 + gcc/testsuite/gcc.target/alpha/pr115297.c | 13 + gcc/testsuite/gcc.target/alpha/pr115526.c | 46 + gcc/testsuite/gcc.target/arm/cmse/extend-param.c | 21 +- gcc/testsuite/gcc.target/arm/cmse/extend-return.c | 66 +- .../gcc.target/arm/copysign_softfloat_1.c | 1 - .../arm/mve/intrinsics/vsetq_lane_su64.c | 63 + gcc/testsuite/gcc.target/arm/pr115153.c | 16 + gcc/testsuite/gcc.target/arm/pr115188.c | 10 + .../gcc.target/arm/thumb2-switchstatement.c | 144 + gcc/testsuite/gcc.target/avr/pr114975-parity.c | 17 + gcc/testsuite/gcc.target/avr/pr114975-popcount.c | 17 + gcc/testsuite/gcc.target/avr/pr114981-powif.c | 33 + gcc/testsuite/gcc.target/avr/pr114981-powil.c | 33 + .../gcc.target/avr/torture/pr115307-isinf.c | 21 + .../gcc.target/avr/torture/pr115317-isinf.c | 55 + gcc/testsuite/gcc.target/avr/torture/pr87376.c | 60 + .../gcc.target/avr/torture/pr88236-pr115726.c | 115 + gcc/testsuite/gcc.target/avr/torture/pr92606.c | 57 + gcc/testsuite/gcc.target/avr/torture/pr98762.c | 19 + gcc/testsuite/gcc.target/i386/avx10_1-25.c | 10 + gcc/testsuite/gcc.target/i386/avx10_1-26.c | 10 + gcc/testsuite/gcc.target/i386/pr115069.c | 9 + gcc/testsuite/gcc.target/i386/pr115508.c | 15 + gcc/testsuite/gcc.target/i386/pr115872.c | 16 + gcc/testsuite/gcc.target/loongarch/pr115752.c | 8 + gcc/testsuite/gcc.target/powerpc/pr106069-1.c | 39 + gcc/testsuite/gcc.target/powerpc/pr106069-2.c | 37 + gcc/testsuite/gcc.target/powerpc/pr114846.c | 20 + gcc/testsuite/gcc.target/powerpc/pr115355.c | 37 + gcc/testsuite/gcc.target/powerpc/pr97367.c | 13 + .../gcc.target/riscv/interrupt-misaligned.c | 2 +- gcc/testsuite/gcc.target/riscv/pr115554.c | 11 + gcc/testsuite/gcc.target/riscv/pr115562.c | 25 + gcc/testsuite/gcc.target/riscv/pr93202.c | 2 +- gcc/testsuite/gcc.target/riscv/rv32e_zcmp.c | 3 +- gcc/testsuite/gcc.target/riscv/rv32i_zcmp.c | 3 +- .../riscv/rvv/autovec/vls-vlmax/vec_set-1.c | 12 +- .../riscv/rvv/autovec/vls-vlmax/vec_set-2.c | 12 +- .../riscv/rvv/autovec/vls-vlmax/vec_set-3.c | 12 +- .../riscv/rvv/autovec/vls-vlmax/vec_set-4.c | 12 +- .../gcc.target/riscv/rvv/base/pr114988-1.c | 9 + .../gcc.target/riscv/rvv/base/pr114988-2.c | 9 + .../gcc.target/riscv/rvv/base/pr115068-run.c | 6 + gcc/testsuite/gcc.target/riscv/rvv/base/pr115068.c | 55 + .../gcc.target/riscv/rvv/base/pr115456-1.c | 31 + .../gcc.target/riscv/rvv/base/pr115456-2.c | 31 + .../gcc.target/riscv/rvv/base/pr115456-3.c | 31 + .../gcc.target/riscv/rvv/base/pr115763-1.c | 9 + .../gcc.target/riscv/rvv/base/pr115763-2.c | 10 + .../gcc.target/riscv/rvv/base/scalar_move-5.c | 4 +- .../gcc.target/riscv/rvv/base/scalar_move-6.c | 6 +- .../gcc.target/riscv/rvv/base/scalar_move-7.c | 6 +- .../gcc.target/riscv/rvv/base/scalar_move-8.c | 6 +- .../gcc.target/riscv/rvv/base/vwaddsub-1.c | 48 + .../gcc.target/riscv/rvv/vsetvl/pr115214.c | 52 + gcc/testsuite/gcc.target/riscv/target-attr-01.c | 16 +- gcc/testsuite/gcc.target/riscv/target-attr-02.c | 16 +- gcc/testsuite/gcc.target/riscv/target-attr-03.c | 11 +- gcc/testsuite/gcc.target/riscv/target-attr-04.c | 11 +- gcc/testsuite/gcc.target/riscv/target-attr-05.c | 10 +- gcc/testsuite/gcc.target/riscv/target-attr-06.c | 11 +- gcc/testsuite/gcc.target/riscv/target-attr-07.c | 10 +- gcc/testsuite/gcc.target/riscv/target-attr-08.c | 20 + gcc/testsuite/gcc.target/riscv/target-attr-09.c | 19 + gcc/testsuite/gcc.target/riscv/target-attr-10.c | 19 + gcc/testsuite/gcc.target/riscv/target-attr-11.c | 22 + gcc/testsuite/gcc.target/riscv/target-attr-12.c | 21 + gcc/testsuite/gcc.target/riscv/target-attr-13.c | 21 + gcc/testsuite/gcc.target/riscv/target-attr-14.c | 42 + gcc/testsuite/gcc.target/riscv/target-attr-15.c | 42 + gcc/testsuite/gcc.target/riscv/target-attr-16.c | 28 + gcc/testsuite/gcc.target/riscv/zicond-ice-5.c | 11 + gcc/testsuite/gcc.target/riscv/zmmul-3.c | 8 + gcc/testsuite/gcc.target/s390/ccor.c | 4 +- .../gcc.target/s390/ifcvt-one-insn-bool.c | 2 +- .../gfortran.dg/allocate_with_source_32.f90 | 33 + .../gfortran.dg/allocate_with_source_33.f90 | 69 + .../gfortran.dg/asan/unlimited_polymorphic_34.f90 | 135 + gcc/testsuite/gfortran.dg/associate_69.f90 | 33 + gcc/testsuite/gfortran.dg/bind_c_char_11.f90 | 45 + gcc/testsuite/gfortran.dg/bounds_check_25.f90 | 32 + gcc/testsuite/gfortran.dg/c-interop/c1255-2.f90 | 4 +- gcc/testsuite/gfortran.dg/minmaxloc_17.f90 | 33 + gcc/testsuite/gfortran.dg/optional_absent_12.f90 | 30 + gcc/testsuite/gfortran.dg/pr103312.f90 | 87 + gcc/testsuite/gfortran.dg/pr113363.f90 | 86 + gcc/testsuite/gfortran.dg/pr114874_1.f90 | 32 + gcc/testsuite/gfortran.dg/pr114874_2.f90 | 53 + gcc/testsuite/gfortran.dg/pr115281.f90 | 39 + gcc/testsuite/gfortran.dg/pr87907.f90 | 8 +- gcc/testsuite/gfortran.dg/pr93635.f90 | 19 + gcc/testsuite/gfortran.dg/shape_12.f90 | 51 + gcc/testsuite/gfortran.dg/statement_function_5.f90 | 20 + gcc/testsuite/gfortran.dg/storage_size_7.f90 | 91 + .../gfortran.dg/string_array_constructor_4.f90 | 59 + gcc/testsuite/gfortran.dg/submodule_33.f08 | 20 + gcc/testsuite/gfortran.dg/transfer_class_4.f90 | 87 + .../pim/run/pass/coroutines-pim-run-pass.exp | 7 - .../gm2/examples/map/pass/examples-map-pass.exp | 5 - .../gm2/extensions/run/pass/callingc10.mod | 6 +- .../gm2/extensions/run/pass/callingc11.mod | 6 +- gcc/testsuite/gm2/extensions/run/pass/vararg2.mod | 6 +- gcc/testsuite/gm2/iso/run/pass/iso-run-pass.exp | 6 - gcc/testsuite/gm2/iso/run/pass/packed.mod | 2 + .../pimlib/base/run/pass/pimlib-base-run-pass.exp | 6 - .../run/pass/halma/projects-iso-run-pass-halma.exp | 7 - .../pass/run/switches-whole-program-pass-run.exp | 4 - gcc/testsuite/gnat.dg/access11.adb | 80 + gcc/testsuite/gnat.dg/array41.adb | 37 + gcc/testsuite/gnat.dg/array41.ads | 5 + gcc/testsuite/gnat.dg/incomplete8.adb | 22 + gcc/testsuite/lib/gm2-torture.exp | 28 - gcc/testsuite/lib/gm2.exp | 34 - gcc/testsuite/lib/target-supports.exp | 2 + gcc/tree-call-cdce.cc | 2 +- gcc/tree-data-ref.cc | 5 +- gcc/tree-eh.cc | 2 +- gcc/tree-if-conv.cc | 4 +- gcc/tree-inline.cc | 28 +- gcc/tree-loop-distribution.cc | 31 +- gcc/tree-sra.cc | 14 +- gcc/tree-ssa-ccp.cc | 12 +- gcc/tree-ssa-copy.cc | 32 +- gcc/tree-ssa-forwprop.cc | 2 + gcc/tree-ssa-live.cc | 8 +- gcc/tree-ssa-phiopt.cc | 12 + gcc/tree-ssa-pre.cc | 10 +- gcc/tree-ssa-reassoc.cc | 3 +- gcc/tree-ssa-sccvn.cc | 21 +- gcc/tree-ssa-strlen.cc | 5 +- gcc/tree-ssanames.cc | 22 + gcc/tree-ssanames.h | 3 +- gcc/tree-vect-loop-manip.cc | 8 +- gcc/tree-vect-loop.cc | 29 +- gcc/tree-vect-slp.cc | 32 +- gcc/tree-vect-stmts.cc | 39 +- gcc/tree-vectorizer.h | 3 + gcc/tree.cc | 65 +- gcc/ubsan.cc | 6 +- gcc/value-pointer-equiv.cc | 2 +- gcc/varasm.cc | 2 + libgcc/ChangeLog | 44 + libgcc/config/aarch64/cpuinfo.c | 184 +- libgcc/config/arm/cmse_nonsecure_call.S | 2 + libgcc/config/avr/lib1funcs.S | 162 +- libgcc/config/avr/libf7/ChangeLog | 19 + libgcc/config/avr/libf7/libf7-asm.sx | 31 +- libgcc/config/avr/libf7/libf7-common.mk | 2 +- libgcc/config/avr/libf7/libf7.c | 29 +- libgcc/config/avr/t-avr | 4 +- libgomp/ChangeLog | 12 + libstdc++-v3/ChangeLog | 301 + libstdc++-v3/doc/html/faq.html | 2 +- libstdc++-v3/doc/html/manual/memory.html | 10 +- .../doc/html/manual/mt_allocator_impl.html | 6 +- libstdc++-v3/doc/html/manual/status.html | 16 +- libstdc++-v3/doc/html/manual/using.html | 10 +- libstdc++-v3/doc/xml/faq.xml | 2 +- libstdc++-v3/doc/xml/manual/allocator.xml | 10 +- libstdc++-v3/doc/xml/manual/mt_allocator.xml | 6 +- libstdc++-v3/doc/xml/manual/status_cxx1998.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2011.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2014.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2017.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2020.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxx2023.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxxtr1.xml | 2 +- libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml | 2 +- libstdc++-v3/doc/xml/manual/using.xml | 33 +- libstdc++-v3/include/bits/chrono_io.h | 5 +- libstdc++-v3/include/bits/out_ptr.h | 10 + libstdc++-v3/include/bits/std_thread.h | 11 +- libstdc++-v3/include/bits/unicode.h | 30 +- libstdc++-v3/include/bits/vector.tcc | 5 + libstdc++-v3/include/bits/version.def | 2 +- libstdc++-v3/include/bits/version.h | 2 +- libstdc++-v3/include/c_compatibility/stdatomic.h | 2 +- libstdc++-v3/include/experimental/bits/simd.h | 223 +- .../include/experimental/bits/simd_builtin.h | 152 +- .../include/experimental/bits/simd_fixed_size.h | 4 +- libstdc++-v3/include/experimental/bits/simd_x86.h | 26 +- libstdc++-v3/include/pstl/pstl_config.h | 2 +- libstdc++-v3/include/std/array | 8 +- libstdc++-v3/include/std/generator | 8 + libstdc++-v3/include/std/span | 2 + libstdc++-v3/include/std/stacktrace | 15 +- libstdc++-v3/include/std/thread | 43 +- libstdc++-v3/libsupc++/new_opa.cc | 2 +- libstdc++-v3/src/c++11/assert_fail.cc | 10 +- libstdc++-v3/src/c++23/print.cc | 2 +- libstdc++-v3/src/libbacktrace/Makefile.am | 2 +- libstdc++-v3/src/libbacktrace/Makefile.in | 2 +- .../testsuite/19_diagnostics/stacktrace/current.cc | 2 +- .../testsuite/19_diagnostics/stacktrace/entry.cc | 2 +- .../testsuite/19_diagnostics/stacktrace/hash.cc | 2 +- .../testsuite/19_diagnostics/stacktrace/output.cc | 2 +- .../19_diagnostics/stacktrace/stacktrace.cc | 12 +- libstdc++-v3/testsuite/20_util/duration/io.cc | 6 + .../testsuite/20_util/headers/memory/114866.cc | 4 + .../23_containers/array/creation/115522.cc | 33 + .../29_atomics/headers/stdatomic.h/115807.cc | 14 + .../testsuite/30_threads/thread/id/output.cc | 21 +- .../testsuite/experimental/simd/pr114958.cc | 20 + .../experimental/simd/pr115454_find_last_set.cc | 50 + .../testsuite/ext/unicode/grapheme_view.cc | 11 + libstdc++-v3/testsuite/ext/unicode/view.cc | 7 + libstdc++-v3/testsuite/util/testsuite_abi.cc | 4 +- 514 files changed, 191885 insertions(+), 179758 deletions(-) diff --cc gcc/cp/decl2.cc index 7ecca8180fce,af2e08c8a632..000b175f5604 --- a/gcc/cp/decl2.cc +++ b/gcc/cp/decl2.cc @@@ -6114,15 -5950,12 +6115,17 @@@ mark_used (tree decl, tsubst_flags_t co /* If DECL has a deduced return type, we need to instantiate it now to find out its type. For OpenMP user defined reductions, we need them - instantiated for reduction clauses which inline them by hand directly. */ + instantiated for reduction clauses which inline them by hand directly. + OpenMP declared mappers are used implicitly so must be instantiated + before they can be detected. */ if (undeduced_auto_decl (decl) + || (VAR_P (decl) + && VAR_HAD_UNKNOWN_BOUND (decl)) || (TREE_CODE (decl) == FUNCTION_DECL - && DECL_OMP_DECLARE_REDUCTION_P (decl))) + && DECL_OMP_DECLARE_REDUCTION_P (decl)) + || (TREE_CODE (decl) == VAR_DECL + && DECL_LANG_SPECIFIC (decl) + && DECL_OMP_DECLARE_MAPPER_P (decl))) maybe_instantiate_decl (decl); if (processing_template_decl || in_template_context)