From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2122) id 909403858C1F; Tue, 1 Nov 2022 11:43:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 909403858C1F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667303047; bh=A6gLsHBrYQ7dA21GR25ZMeLllFxg+JolDa5yD7JLvY0=; h=From:To:Subject:Date:From; b=SPJAs9tQUPt8Ca6wRx/JNLtiYum3aulUN1NL/1OVMHW6rDESIFvVf/pgbBdCuGiWP qee3PL0asM7S9yqLgnXuOVcyPZj+sw7GtPRvdgD/IBfGfKtKncJ9N/11M1un4GjTj8 8lmgmV6MuEeuVc487oFrlZoqY/J6Jl/IGTOBSti8= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jason Merrill To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc/devel/c++-contracts] Merge remote-tracking branch 'origin/master' into devel/c++-contracts X-Act-Checkin: gcc X-Git-Author: Jason Merrill X-Git-Refname: refs/heads/devel/c++-contracts X-Git-Oldrev: 2031dff9d921dbec9065c5b7d3ef3ac97adf18b2 X-Git-Newrev: bfcb6e7373095d776eeb505f6d1a7d04ada21a3c Message-Id: <20221101114407.909403858C1F@sourceware.org> Date: Tue, 1 Nov 2022 11:43:46 +0000 (GMT) List-Id: https://gcc.gnu.org/g:bfcb6e7373095d776eeb505f6d1a7d04ada21a3c commit bfcb6e7373095d776eeb505f6d1a7d04ada21a3c Merge: 2031dff9d92 af6d747df7e Author: Jason Merrill Date: Mon Oct 31 22:18:58 2022 -0400 Merge remote-tracking branch 'origin/master' into devel/c++-contracts Diff: gcc/d/gdc.texi | 8 +- gcc/doc/extend.texi | 82 ++ gcc/doc/invoke.texi | 74 +- gcc/doc/makefile.texi | 10 + gcc/doc/sourcebuild.texi | 3 + gcc/doc/tm.texi | 20 +- gcc/c-family/c.opt | 8 +- gcc/config/i386/i386.opt | 5 + gcc/config/riscv/riscv.opt | 6 + gcc/d/lang.opt | 4 +- gcc/lto/lang.opt | 15 +- gcc/c-family/c-common.h | 24 + gcc/c/c-tree.h | 27 +- gcc/common/config/i386/cpuinfo.h | 40 +- gcc/common/config/i386/i386-cpuinfo.h | 1 + gcc/common/config/i386/i386-isas.h | 2 + gcc/config/aarch64/aarch64-protos.h | 6 +- .../aarch64/aarch64-sve-builtins-functions.h | 28 +- gcc/config/aarch64/aarch64.h | 4 - gcc/config/arm/linux-eabi.h | 3 - gcc/config/bpf/coreout.h | 2 +- gcc/config/elfos.h | 6 - gcc/config/gnu.h | 6 - gcc/config/h8300/h8300-protos.h | 2 +- gcc/config/i386/avx512bf16intrin.h | 12 +- gcc/config/i386/avx512bf16vlintrin.h | 48 +- gcc/config/i386/avxneconvertintrin.h | 140 ++++ gcc/config/i386/cpuid.h | 1 + gcc/config/i386/cygwin.h | 9 - gcc/config/i386/i386.h | 9 +- gcc/config/i386/immintrin.h | 4 + gcc/config/i386/linux-common.h | 3 - gcc/config/i386/mingw32.h | 12 - gcc/config/kfreebsd-gnu.h | 6 - gcc/config/kopensolaris-gnu.h | 6 - gcc/config/linux-android.h | 6 - gcc/config/linux.h | 13 - gcc/config/mips/linux-common.h | 3 - gcc/config/riscv/riscv-opts.h | 16 + gcc/config/riscv/riscv-protos.h | 16 +- gcc/config/riscv/riscv-vector-builtins.h | 2 +- gcc/config/riscv/riscv.h | 3 + gcc/cp/cp-tree.h | 32 +- gcc/ctfc.h | 5 +- gcc/d/dmd/aggregate.h | 4 +- gcc/d/dmd/attrib.h | 1 - gcc/d/dmd/declaration.h | 66 +- gcc/d/dmd/dsymbol.h | 16 +- gcc/d/dmd/expression.h | 1 + gcc/d/dmd/globals.h | 6 +- gcc/d/dmd/module.h | 2 +- gcc/d/dmd/mtype.h | 5 + gcc/ginclude/stdarg.h | 4 + gcc/testsuite/g++.dg/abi/lambda-tpl1.h | 59 ++ gcc/testsuite/gcc.dg/torture/floatn-builtin.h | 154 ++++ gcc/testsuite/gcc.target/i386/avx-check.h | 3 + gcc/tree-core.h | 3 +- gcc/tree.h | 8 +- gcc/value-range.h | 12 +- include/btf.h | 19 +- include/vtv-change-permission.h | 4 + libitm/config/riscv/asm.h | 63 ++ libitm/config/riscv/target.h | 64 ++ libstdc++-v3/config/os/gnu-linux/os_defines.h | 2 +- libstdc++-v3/include/bits/cpp_type_traits.h | 45 ++ libstdc++-v3/include/bits/fs_path.h | 6 +- libstdc++-v3/include/bits/regex_executor.h | 17 +- gcc/alias.cc | 19 +- gcc/analyzer/sm-fd.cc | 34 +- gcc/auto-profile.cc | 5 +- gcc/btfout.cc | 30 +- gcc/builtins.cc | 142 ++-- gcc/c-family/c-common.cc | 11 +- gcc/c-family/c-warn.cc | 3 +- gcc/c/c-convert.cc | 8 +- gcc/c/c-decl.cc | 332 +++++--- gcc/c/c-objc-common.cc | 8 +- gcc/c/c-parser.cc | 225 ++++-- gcc/c/c-typeck.cc | 76 +- gcc/common/config/i386/i386-common.cc | 21 +- gcc/common/config/riscv/riscv-common.cc | 47 +- gcc/config/aarch64/aarch64-sve-builtins-base.cc | 56 +- gcc/config/aarch64/aarch64-sve-builtins-shapes.cc | 8 +- gcc/config/aarch64/aarch64-sve-builtins-sve2.cc | 12 +- gcc/config/aarch64/aarch64-sve-builtins.cc | 8 +- gcc/config/aarch64/aarch64.cc | 5 +- gcc/config/aarch64/driver-aarch64.cc | 4 +- gcc/config/alpha/alpha.cc | 5 +- gcc/config/arc/arc.cc | 3 +- gcc/config/arm/arm.cc | 3 +- gcc/config/bpf/bpf.cc | 404 ++++++++-- gcc/config/bpf/coreout.cc | 5 +- gcc/config/csky/csky.cc | 3 +- gcc/config/darwin-d.cc | 8 +- gcc/config/epiphany/epiphany.cc | 8 +- gcc/config/fr30/fr30.cc | 21 +- gcc/config/frv/frv.cc | 3 +- gcc/config/ft32/ft32.cc | 6 +- gcc/config/gcn/gcn.cc | 29 +- gcc/config/{glibc-d.cc => gnu-d.cc} | 30 +- gcc/config/h8300/h8300.cc | 2 +- gcc/config/i386/cygwin-d.cc | 72 ++ gcc/config/i386/i386-c.cc | 2 + gcc/config/i386/i386-expand.cc | 69 +- gcc/config/i386/i386-options.cc | 4 +- gcc/config/i386/i386.cc | 9 +- gcc/config/i386/winnt-d.cc | 21 +- gcc/config/ia64/ia64.cc | 5 +- gcc/config/kfreebsd-d.cc | 65 ++ gcc/config/kopensolaris-d.cc | 65 ++ gcc/config/linux-d.cc | 78 ++ gcc/config/loongarch/loongarch.cc | 3 +- gcc/config/m32r/m32r.cc | 12 +- gcc/config/mcore/mcore.cc | 5 +- gcc/config/mips/mips.cc | 3 +- gcc/config/mmix/mmix.cc | 3 +- gcc/config/nds32/nds32.cc | 9 +- gcc/config/nios2/nios2.cc | 3 +- gcc/config/riscv/riscv-builtins.cc | 4 +- gcc/config/riscv/riscv-c.cc | 2 +- gcc/config/riscv/riscv-v.cc | 180 +++++ gcc/config/riscv/riscv-vector-builtins-bases.cc | 18 +- gcc/config/riscv/riscv-vector-builtins-shapes.cc | 2 +- gcc/config/riscv/riscv-vector-builtins.cc | 18 +- gcc/config/riscv/riscv.cc | 128 ++- gcc/config/rs6000/rs6000-call.cc | 7 +- gcc/config/rs6000/rs6000.cc | 7 +- gcc/config/sh/sh.cc | 9 +- gcc/config/visium/visium.cc | 3 +- gcc/config/vms/vms-c.cc | 3 - gcc/cp/call.cc | 155 +++- gcc/cp/constraint.cc | 6 +- gcc/cp/mangle.cc | 68 ++ gcc/cp/module.cc | 39 +- gcc/cp/name-lookup.cc | 7 + gcc/cp/parser.cc | 101 +-- gcc/cp/pt.cc | 107 +-- gcc/cp/typeck.cc | 14 +- gcc/ctfc.cc | 13 +- gcc/d/d-attribs.cc | 5 +- gcc/d/d-builtins.cc | 3 + gcc/d/d-lang.cc | 10 +- gcc/d/expr.cc | 9 + gcc/d/modules.cc | 4 +- gcc/dwarf2ctf.cc | 5 +- gcc/expr.cc | 3 +- gcc/fold-const-call.cc | 58 ++ gcc/fold-const.cc | 64 ++ gcc/fortran/symbol.cc | 4 + gcc/fortran/trans-types.cc | 4 +- gcc/function.cc | 6 + gcc/gimple-range-fold.cc | 8 + gcc/gimple-ssa-backprop.cc | 6 + gcc/ipa-inline-analysis.cc | 13 +- gcc/ipa-visibility.cc | 8 +- gcc/ira.cc | 1 + gcc/lto/lto-common.cc | 1 + gcc/lto/lto-dump.cc | 22 +- gcc/objc/objc-next-runtime-abi-01.cc | 2 +- gcc/omp-low.cc | 22 + gcc/testsuite/c-c++-common/gomp/clauses-6.c | 604 ++++++++++++++ .../c-c++-common/gomp/declare-variant-2.c | 3 +- gcc/testsuite/c-c++-common/gomp/directive-1.c | 28 + gcc/testsuite/g++.dg/abi/lambda-ctx1-18.C | 4 +- gcc/testsuite/g++.dg/abi/lambda-ctx1-18vs17.C | 4 +- gcc/testsuite/g++.dg/abi/lambda-tpl1-17.C | 20 + gcc/testsuite/g++.dg/abi/lambda-tpl1-18.C | 25 + gcc/testsuite/g++.dg/abi/lambda-tpl1-18vs17.C | 16 + gcc/testsuite/g++.dg/cpp23/elision4.C | 5 +- gcc/testsuite/g++.dg/cpp23/elision7.C | 3 +- gcc/testsuite/g++.dg/cpp23/ext-floating12.C | 182 +++++ gcc/testsuite/g++.dg/diagnostic/bad-binary-ops2.C | 26 + gcc/testsuite/g++.dg/gomp/clause-4.C | 2 +- gcc/testsuite/g++.dg/modules/enum-10_b.C | 6 + gcc/testsuite/g++.dg/modules/enum-11_b.C | 8 + gcc/testsuite/g++.dg/modules/enum-9_b.C | 6 + gcc/testsuite/g++.dg/other/i386-2.C | 2 +- gcc/testsuite/g++.dg/other/i386-3.C | 2 +- gcc/testsuite/g++.dg/warn/Wdangling-pointer-2.C | 2 +- gcc/testsuite/g++.dg/warn/Wdangling-reference1.C | 144 ++++ gcc/testsuite/g++.dg/warn/Wdangling-reference2.C | 28 + gcc/testsuite/g++.dg/warn/Wdangling-reference3.C | 24 + gcc/testsuite/g++.dg/warn/Wdangling-reference4.C | 14 + gcc/testsuite/gcc.dg/Wold-style-definition-2.c | 2 +- gcc/testsuite/gcc.dg/analyzer/fd-3.c | 18 +- gcc/testsuite/gcc.dg/c11-enum-4.c | 7 + gcc/testsuite/gcc.dg/c11-enum-5.c | 7 + gcc/testsuite/gcc.dg/c11-enum-6.c | 8 + gcc/testsuite/gcc.dg/c11-stdarg-1.c | 7 + gcc/testsuite/gcc.dg/c11-stdarg-2.c | 7 + gcc/testsuite/gcc.dg/c11-stdarg-3.c | 8 + gcc/testsuite/gcc.dg/c2x-enum-6.c | 167 ++++ gcc/testsuite/gcc.dg/c2x-enum-7.c | 97 +++ gcc/testsuite/gcc.dg/c2x-enum-8.c | 7 + gcc/testsuite/gcc.dg/c2x-nullptr-1.c | 1 + gcc/testsuite/gcc.dg/c2x-stdarg-1.c | 22 + gcc/testsuite/gcc.dg/c2x-stdarg-2.c | 22 + gcc/testsuite/gcc.dg/c2x-stdarg-3.c | 16 + gcc/testsuite/gcc.dg/c2x-stdarg-4.c | 164 ++++ gcc/testsuite/gcc.dg/debug/btf/btf-enum-1.c | 2 +- gcc/testsuite/gcc.dg/debug/btf/btf-enum64-1.c | 44 ++ gcc/testsuite/gcc.dg/diagnostic-token-ranges.c | 4 +- gcc/testsuite/gcc.dg/format/sentinel-1.c | 2 +- gcc/testsuite/gcc.dg/gnu2x-enum-1.c | 11 + gcc/testsuite/gcc.dg/gnu2x-stdarg-1.c | 8 + gcc/testsuite/gcc.dg/gomp/clause-2.c | 2 +- gcc/testsuite/gcc.dg/ipa/inlinehint-6.c | 47 ++ gcc/testsuite/gcc.dg/torture/c2x-stdarg-split-1a.c | 37 + gcc/testsuite/gcc.dg/torture/c2x-stdarg-split-1b.c | 147 ++++ gcc/testsuite/gcc.dg/torture/pr107407.c | 26 + gcc/testsuite/gcc.dg/torture/pr107435.c | 23 + gcc/testsuite/gcc.dg/torture/pr107447.c | 23 + gcc/testsuite/gcc.dg/tree-ssa/pr107394.c | 22 + gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c | 2 +- gcc/testsuite/gcc.dg/vect/pr100756.c | 2 +- gcc/testsuite/gcc.dg/vect/vect-bitfield-read-1.c | 1 + gcc/testsuite/gcc.dg/vect/vect-bitfield-read-2.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-bitfield-read-3.c | 1 + gcc/testsuite/gcc.dg/vect/vect-bitfield-read-4.c | 3 +- gcc/testsuite/gcc.dg/vect/vect-bitfield-read-5.c | 1 + gcc/testsuite/gcc.dg/vect/vect-bitfield-read-6.c | 1 + gcc/testsuite/gcc.dg/vect/vect-bitfield-read-7.c | 1 + .../bpf/core-builtin-fieldinfo-errors-1.c | 23 + .../bpf/core-builtin-fieldinfo-errors-2.c | 23 + .../bpf/core-builtin-fieldinfo-existence-1.c | 34 + .../bpf/core-builtin-fieldinfo-lshift-1-be.c | 37 + .../bpf/core-builtin-fieldinfo-lshift-1-le.c | 37 + .../bpf/core-builtin-fieldinfo-lshift-2.c | 37 + .../bpf/core-builtin-fieldinfo-offset-1.c | 56 ++ .../bpf/core-builtin-fieldinfo-rshift-1.c | 36 + .../bpf/core-builtin-fieldinfo-rshift-2.c | 35 + .../gcc.target/bpf/core-builtin-fieldinfo-sign-1.c | 33 + .../gcc.target/bpf/core-builtin-fieldinfo-sign-2.c | 45 ++ .../gcc.target/bpf/core-builtin-fieldinfo-size-1.c | 43 + gcc/testsuite/gcc.target/i386/avx-ne-convert-1.c | 45 ++ .../i386/avx-ne-convert-vbcstnebf162ps-2.c | 54 ++ .../i386/avx-ne-convert-vbcstnesh2ps-2.c | 42 + .../i386/avx-ne-convert-vcvtneebf162ps-2.c | 73 ++ .../i386/avx-ne-convert-vcvtneeph2ps-2.c | 66 ++ .../i386/avx-ne-convert-vcvtneobf162ps-2.c | 75 ++ .../i386/avx-ne-convert-vcvtneoph2ps-2.c | 66 ++ .../i386/avx-ne-convert-vcvtneps2bf16-2.c | 58 ++ .../gcc.target/i386/avx512bf16-cvtsbh2ss-1.c | 2 +- .../gcc.target/i386/avx512bf16-vdpbf16ps-2.c | 2 +- .../gcc.target/i386/avx512bf16vl-cvtness2sbh-1.c | 2 +- .../gcc.target/i386/avx512bf16vl-vcvtneps2bf16-1.c | 27 - .../i386/avx512bf16vl-vcvtneps2bf16-1a.c | 27 + .../i386/avx512bf16vl-vcvtneps2bf16-1b.c | 27 + gcc/testsuite/gcc.target/i386/pr107172.c | 26 + gcc/testsuite/gcc.target/i386/pr107261.c | 38 + gcc/testsuite/gcc.target/i386/pr107304.c | 39 + gcc/testsuite/gcc.target/i386/sse-12.c | 2 +- gcc/testsuite/gcc.target/i386/sse-13.c | 2 +- gcc/testsuite/gcc.target/i386/sse-14.c | 2 +- gcc/testsuite/gcc.target/i386/sse-22.c | 4 +- gcc/testsuite/gcc.target/i386/sse-23.c | 2 +- gcc/testsuite/gcc.target/powerpc/pr106460.c | 12 + gcc/testsuite/gcc.target/riscv/_Float16-zhinx-1.c | 10 + gcc/testsuite/gcc.target/riscv/_Float16-zhinx-2.c | 9 + gcc/testsuite/gcc.target/riscv/_Float16-zhinx-3.c | 9 + .../gcc.target/riscv/_Float16-zhinxmin-1.c | 10 + .../gcc.target/riscv/_Float16-zhinxmin-2.c | 10 + .../gcc.target/riscv/_Float16-zhinxmin-3.c | 10 + gcc/testsuite/gcc.target/riscv/arch-18.c | 5 + gcc/testsuite/gcc.target/riscv/arch-5.c | 2 +- gcc/testsuite/gcc.target/riscv/predef-23.c | 63 ++ gcc/testsuite/gcc.target/riscv/predef-24.c | 47 ++ gcc/testsuite/gcc.target/riscv/predef-25.c | 47 ++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-1.c | 179 +++++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-10.c | 385 +++++++++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-11.c | 385 +++++++++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-12.c | 159 ++++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-13.c | 14 + gcc/testsuite/gcc.target/riscv/rvv/base/mov-2.c | 153 ++++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-3.c | 127 +++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-4.c | 101 +++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-5.c | 66 ++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-6.c | 53 ++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-7.c | 13 + gcc/testsuite/gcc.target/riscv/rvv/base/mov-8.c | 96 +++ gcc/testsuite/gcc.target/riscv/rvv/base/mov-9.c | 44 ++ gcc/tree-call-cdce.cc | 20 + gcc/tree-ssa-dse.cc | 17 +- gcc/tree-ssa-loop-im.cc | 13 +- gcc/tree-ssa-phiopt.cc | 35 +- gcc/tree-streamer-in.cc | 1 + gcc/tree-streamer-out.cc | 1 + gcc/tree-vect-data-refs.cc | 5 + gcc/tree-vect-loop.cc | 6 + gcc/tree.cc | 31 +- gcc/value-range-storage.cc | 31 +- gcc/value-range.cc | 8 +- .../src/c++11/compatibility-atomic-c++0x.cc | 8 +- .../testsuite/26_numerics/complex/ext_c++23.cc | 89 +++ .../26_numerics/headers/cmath/nextafter_c++23.cc | 2 + .../28_regex/algorithms/regex_match/107376.cc | 76 ++ gcc/analyzer/sm-fd.dot | 109 +++ gcc/builtin-types.def | 184 +++++ gcc/builtins.def | 123 ++- gcc/config.gcc | 28 +- gcc/config/gcn/gcn-valu.md | 139 ++-- gcc/config/gcn/gcn.md | 5 +- gcc/config/i386/i386-builtin-types.def | 66 +- gcc/config/i386/i386-builtin.def | 68 +- gcc/config/i386/i386-isa.def | 1 + gcc/config/i386/i386-modes.def | 1 + gcc/config/i386/i386.md | 55 +- gcc/config/i386/mmx.md | 26 +- gcc/config/i386/sse.md | 195 ++++- gcc/config/riscv/constraints.md | 27 +- gcc/config/riscv/iterators.md | 6 +- gcc/config/riscv/predicates.md | 23 + gcc/config/riscv/riscv-modes.def | 109 +-- gcc/config/riscv/riscv.md | 87 ++- gcc/config/riscv/vector-iterators.md | 58 ++ gcc/config/riscv/vector.md | 279 ++++++- gcc/config/xtensa/xtensa.md | 7 +- gcc/configure.ac | 1 + gcc/d/d-target.def | 23 +- gcc/d/dmd/aggregate.d | 2 +- gcc/d/dmd/attrib.d | 41 - gcc/d/dmd/clone.d | 22 +- gcc/d/dmd/common/bitfields.d | 9 +- gcc/d/dmd/common/file.d | 11 +- gcc/d/dmd/cparse.d | 39 +- gcc/d/dmd/cppmangle.d | 10 +- gcc/d/dmd/dcast.d | 114 ++- gcc/d/dmd/declaration.d | 59 +- gcc/d/dmd/dinterpret.d | 6 + gcc/d/dmd/dmodule.d | 435 +++++------ gcc/d/dmd/dscope.d | 6 +- gcc/d/dmd/dstruct.d | 33 +- gcc/d/dmd/dsymbol.d | 54 +- gcc/d/dmd/dsymbolsem.d | 204 +++-- gcc/d/dmd/dtemplate.d | 4 +- gcc/d/dmd/entity.d | 236 +++--- gcc/d/dmd/escape.d | 375 ++++----- gcc/d/dmd/expression.d | 2 +- gcc/d/dmd/expressionsem.d | 171 ++-- gcc/d/dmd/func.d | 276 +++---- gcc/d/dmd/globals.d | 5 +- gcc/d/dmd/hdrgen.d | 27 +- gcc/d/dmd/lexer.d | 48 +- gcc/d/dmd/mtype.d | 71 +- gcc/d/dmd/nogc.d | 4 +- gcc/d/dmd/parse.d | 6 +- gcc/d/dmd/printast.d | 7 + gcc/d/dmd/root/utf.d | 2 +- gcc/d/dmd/safe.d | 10 +- gcc/d/dmd/semantic3.d | 44 +- gcc/d/dmd/statementsem.d | 188 +++-- gcc/d/dmd/templateparamsem.d | 9 + gcc/d/dmd/transitivevisitor.d | 9 + gcc/doc/tm.texi.in | 4 +- gcc/optc-save-gen.awk | 31 +- gcc/target.def | 4 +- gcc/testsuite/g++.dg/modules/enum-10_a.H | 5 + gcc/testsuite/g++.dg/modules/enum-11_a.H | 5 + gcc/testsuite/g++.dg/modules/enum-9_a.H | 13 + gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + gcc/testsuite/gdc.dg/simd18867.d | 11 + gcc/testsuite/gdc.dg/simd19630.d | 10 - gcc/testsuite/gdc.dg/simd19630b.d | 17 + gcc/testsuite/gdc.dg/simd19630c.d | 15 + gcc/testsuite/gdc.dg/simd19788.d | 11 + gcc/testsuite/gdc.dg/simd21469.d | 9 + gcc/testsuite/gdc.dg/simd21672.d | 17 + gcc/testsuite/gdc.dg/simd23077.d | 11 + gcc/testsuite/gdc.dg/simd23084.d | 17 + gcc/testsuite/gdc.dg/simd23085.d | 11 + gcc/testsuite/gdc.dg/simd_ctfe.d | 88 --- gcc/testsuite/gdc.dg/torture/simd19632.d | 15 + gcc/testsuite/gdc.dg/torture/simd20041.d | 22 + gcc/testsuite/gdc.dg/torture/simd21673.d | 20 + gcc/testsuite/gdc.dg/torture/simd21676.d | 36 + gcc/testsuite/gdc.dg/torture/simd22438.d | 18 + gcc/testsuite/gdc.dg/torture/simd23009.d | 22 + gcc/testsuite/gdc.dg/torture/simd23077.d | 11 + gcc/testsuite/gdc.dg/torture/simd8.d | 26 + gcc/testsuite/gdc.dg/torture/simd9.d | 46 ++ gcc/testsuite/gdc.dg/torture/simd_prefetch.d | 21 + gcc/testsuite/gdc.test/compilable/cdcmp.d | 14 - .../gdc.test/compilable/extra-files/header2.d | 19 + .../gdc.test/compilable/imports/cimports2a.i | 7 + .../gdc.test/compilable/imports/cimports2b.i | 8 + .../gdc.test/compilable/imports/pkg22952/package.d | 1 + gcc/testsuite/gdc.test/compilable/noreturn3.d | 257 ++++++ .../gdc.test/compilable/scope_tuple_expansion.d | 21 + .../gdc.test/compilable/shortened_methods.d | 2 +- gcc/testsuite/gdc.test/compilable/test11980.d | 5 +- gcc/testsuite/gdc.test/compilable/test22674.d | 7 + gcc/testsuite/gdc.test/compilable/test22784.d | 10 + gcc/testsuite/gdc.test/compilable/test22952.d | 10 + gcc/testsuite/gdc.test/compilable/test23380.d | 9 + gcc/testsuite/gdc.test/compilable/test23386.d | 12 + .../gdc.test/fail_compilation/diag23384.d | 29 + .../gdc.test/fail_compilation/fail10905.d | 22 - .../gdc.test/fail_compilation/fail19898a.d | 2 +- .../gdc.test/fail_compilation/fail19898b.d | 2 +- .../gdc.test/fail_compilation/fail22366.d | 2 +- .../gdc.test/fail_compilation/fail23406.d | 40 + .../gdc.test/fail_compilation/issue21378.d | 2 +- gcc/testsuite/gdc.test/fail_compilation/lexer1.d | 3 +- .../gdc.test/fail_compilation/pragmainline.d | 2 +- gcc/testsuite/gdc.test/fail_compilation/pragmas.d | 4 +- .../gdc.test/fail_compilation/previewin.d | 6 +- .../gdc.test/fail_compilation/reserved_version.d | 3 + .../fail_compilation/reserved_version_switch.d | 3 + gcc/testsuite/gdc.test/fail_compilation/retscope.d | 6 +- .../gdc.test/fail_compilation/retscope2.d | 2 +- .../gdc.test/fail_compilation/retscope6.d | 2 +- .../gdc.test/fail_compilation/systemvariables.d | 48 ++ .../fail_compilation/systemvariables_deprecation.d | 28 + .../fail_compilation/systemvariables_struct.d | 60 ++ .../fail_compilation/systemvariables_void_init.d | 32 + .../gdc.test/fail_compilation/templatethis.d | 37 + .../gdc.test/fail_compilation/test14496.d | 3 +- .../gdc.test/fail_compilation/test17764.d | 2 +- .../gdc.test/fail_compilation/test19097.d | 2 +- .../gdc.test/fail_compilation/test22145.d | 2 +- .../gdc.test/fail_compilation/test22680.d | 2 +- .../gdc.test/fail_compilation/warn14905.d | 23 + gcc/testsuite/gdc.test/fail_compilation/xmmslice.d | 22 + gcc/testsuite/gdc.test/runnable/cdcmp.d | 146 ++++ gcc/testsuite/gdc.test/runnable/lexer.d | 4 + gcc/testsuite/gdc.test/runnable/test20734.d | 8 + gcc/testsuite/gdc.test/runnable/test23337.d | 182 +++++ gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90 | 13 + gcc/testsuite/lib/profopt.exp | 2 +- gcc/testsuite/lib/target-supports.exp | 12 + libgo/go/runtime/mem_gccgo.go | 6 +- .../testsuite/libgomp.oacc-fortran/declare-1.f90 | 2 +- .../testsuite/libgomp.oacc-fortran/host_data-5.F90 | 24 +- libgomp/testsuite/libgomp.oacc-fortran/if-1.f90 | 12 +- libgomp/testsuite/libgomp.oacc-fortran/print-1.f90 | 13 +- .../libgomp.oacc-fortran/privatized-ref-2.f90 | 8 +- libitm/config/riscv/sjlj.S | 144 ++++ libitm/configure.tgt | 2 + libphobos/libdruntime/core/stdc/fenv.d | 1 - libphobos/libdruntime/core/stdc/signal.d | 1 - libphobos/libdruntime/core/stdc/stdarg.d | 1 - libphobos/libdruntime/core/stdc/stdio.d | 1 - libphobos/libdruntime/core/stdc/stdlib.d | 1 - libphobos/libdruntime/core/stdc/string.d | 1 - libphobos/libdruntime/core/stdc/wchar_.d | 1 - libphobos/libdruntime/core/sys/darwin/fcntl.d | 1 - libphobos/libdruntime/core/sys/darwin/ifaddrs.d | 1 - libphobos/libdruntime/core/sys/elf/package.d | 1 - libphobos/libdruntime/core/sys/linux/dlfcn.d | 1 - libphobos/libdruntime/core/sys/linux/elf.d | 1 - libphobos/libdruntime/core/sys/linux/epoll.d | 2 - libphobos/libdruntime/core/sys/linux/err.d | 1 - libphobos/libdruntime/core/sys/linux/errno.d | 1 - libphobos/libdruntime/core/sys/linux/execinfo.d | 1 - libphobos/libdruntime/core/sys/linux/fcntl.d | 1 - libphobos/libdruntime/core/sys/linux/fs.d | 1 - libphobos/libdruntime/core/sys/linux/ifaddrs.d | 1 - libphobos/libdruntime/core/sys/linux/io_uring.d | 2 - libphobos/libdruntime/core/sys/linux/link.d | 1 - libphobos/libdruntime/core/sys/linux/perf_event.d | 1 - libphobos/libdruntime/core/sys/linux/sched.d | 1 - libphobos/libdruntime/core/sys/linux/stdio.d | 3 +- libphobos/libdruntime/core/sys/linux/string.d | 1 - libphobos/libdruntime/core/sys/linux/sys/eventfd.d | 1 - libphobos/libdruntime/core/sys/linux/sys/inotify.d | 1 - libphobos/libdruntime/core/sys/linux/sys/mman.d | 1 - libphobos/libdruntime/core/sys/linux/sys/prctl.d | 1 - .../libdruntime/core/sys/linux/sys/signalfd.d | 1 - libphobos/libdruntime/core/sys/linux/sys/sysinfo.d | 1 - libphobos/libdruntime/core/sys/linux/sys/xattr.d | 1 - libphobos/libdruntime/core/sys/linux/timerfd.d | 1 - libphobos/libdruntime/core/sys/linux/tipc.d | 1 - libphobos/libdruntime/core/sys/linux/unistd.d | 1 - libphobos/libdruntime/core/sys/openbsd/sys/mman.d | 1 + libphobos/libdruntime/core/sys/posix/aio.d | 1 - libphobos/libdruntime/core/sys/posix/config.d | 1 - libphobos/libdruntime/core/sys/posix/dirent.d | 1 - libphobos/libdruntime/core/sys/posix/dlfcn.d | 1 - libphobos/libdruntime/core/sys/posix/fcntl.d | 1 - libphobos/libdruntime/core/sys/posix/grp.d | 1 - libphobos/libdruntime/core/sys/posix/iconv.d | 1 - libphobos/libdruntime/core/sys/posix/inttypes.d | 1 - libphobos/libdruntime/core/sys/posix/libgen.d | 1 - libphobos/libdruntime/core/sys/posix/locale.d | 1 - libphobos/libdruntime/core/sys/posix/mqueue.d | 1 - libphobos/libdruntime/core/sys/posix/netdb.d | 1 - libphobos/libdruntime/core/sys/posix/poll.d | 1 - libphobos/libdruntime/core/sys/posix/pthread.d | 1 - libphobos/libdruntime/core/sys/posix/pwd.d | 1 - libphobos/libdruntime/core/sys/posix/sched.d | 1 - libphobos/libdruntime/core/sys/posix/semaphore.d | 1 - libphobos/libdruntime/core/sys/posix/setjmp.d | 1 - libphobos/libdruntime/core/sys/posix/spawn.d | 1 - libphobos/libdruntime/core/sys/posix/stdio.d | 1 - libphobos/libdruntime/core/sys/posix/stdlib.d | 1 - libphobos/libdruntime/core/sys/posix/string.d | 1 - libphobos/libdruntime/core/sys/posix/strings.d | 1 - libphobos/libdruntime/core/sys/posix/sys/filio.d | 1 - libphobos/libdruntime/core/sys/posix/sys/ioccom.d | 1 - libphobos/libdruntime/core/sys/posix/sys/ioctl.d | 1 - libphobos/libdruntime/core/sys/posix/sys/ipc.d | 1 - libphobos/libdruntime/core/sys/posix/sys/mman.d | 1 - libphobos/libdruntime/core/sys/posix/sys/msg.d | 1 - .../libdruntime/core/sys/posix/sys/resource.d | 1 - libphobos/libdruntime/core/sys/posix/sys/select.d | 1 - libphobos/libdruntime/core/sys/posix/sys/shm.d | 1 - libphobos/libdruntime/core/sys/posix/sys/socket.d | 1 - libphobos/libdruntime/core/sys/posix/sys/stat.d | 1 - libphobos/libdruntime/core/sys/posix/sys/statvfs.d | 1 - libphobos/libdruntime/core/sys/posix/sys/time.d | 1 - libphobos/libdruntime/core/sys/posix/sys/ttycom.d | 1 - libphobos/libdruntime/core/sys/posix/sys/types.d | 1 - libphobos/libdruntime/core/sys/posix/sys/uio.d | 1 - libphobos/libdruntime/core/sys/posix/sys/un.d | 1 - libphobos/libdruntime/core/sys/posix/sys/utsname.d | 1 - libphobos/libdruntime/core/sys/posix/sys/wait.d | 1 - libphobos/libdruntime/core/sys/posix/syslog.d | 1 - libphobos/libdruntime/core/sys/posix/termios.d | 1 - libphobos/libdruntime/core/sys/posix/time.d | 1 - libphobos/libdruntime/core/sys/posix/ucontext.d | 1 - libphobos/libdruntime/core/sys/posix/unistd.d | 1 - libphobos/libdruntime/core/sys/posix/utime.d | 1 - libphobos/libdruntime/core/sys/windows/aclapi.d | 1 - libphobos/libdruntime/core/sys/windows/aclui.d | 1 - libphobos/libdruntime/core/sys/windows/basetsd.d | 1 - libphobos/libdruntime/core/sys/windows/basetyps.d | 1 - libphobos/libdruntime/core/sys/windows/com.d | 1 - libphobos/libdruntime/core/sys/windows/comcat.d | 1 - libphobos/libdruntime/core/sys/windows/commctrl.d | 1 - libphobos/libdruntime/core/sys/windows/commdlg.d | 1 - libphobos/libdruntime/core/sys/windows/cpl.d | 1 - libphobos/libdruntime/core/sys/windows/cplext.d | 1 - libphobos/libdruntime/core/sys/windows/custcntl.d | 1 - libphobos/libdruntime/core/sys/windows/dbghelp.d | 1 - .../libdruntime/core/sys/windows/dbghelp_types.d | 1 - libphobos/libdruntime/core/sys/windows/dbt.d | 1 - libphobos/libdruntime/core/sys/windows/dde.d | 1 - libphobos/libdruntime/core/sys/windows/ddeml.d | 1 - libphobos/libdruntime/core/sys/windows/dhcpcsdk.d | 1 - libphobos/libdruntime/core/sys/windows/dlgs.d | 1 - libphobos/libdruntime/core/sys/windows/dll.d | 1 - libphobos/libdruntime/core/sys/windows/docobj.d | 1 - libphobos/libdruntime/core/sys/windows/errorrep.d | 1 - libphobos/libdruntime/core/sys/windows/exdisp.d | 1 - libphobos/libdruntime/core/sys/windows/httpext.d | 1 - libphobos/libdruntime/core/sys/windows/imagehlp.d | 1 - libphobos/libdruntime/core/sys/windows/imm.d | 1 - libphobos/libdruntime/core/sys/windows/intshcut.d | 1 - libphobos/libdruntime/core/sys/windows/ipexport.d | 1 - libphobos/libdruntime/core/sys/windows/iphlpapi.d | 1 - libphobos/libdruntime/core/sys/windows/iprtrmib.d | 1 - libphobos/libdruntime/core/sys/windows/iptypes.d | 1 - libphobos/libdruntime/core/sys/windows/lm.d | 1 - libphobos/libdruntime/core/sys/windows/lmaccess.d | 1 - libphobos/libdruntime/core/sys/windows/lmalert.d | 1 - libphobos/libdruntime/core/sys/windows/lmat.d | 1 - libphobos/libdruntime/core/sys/windows/lmaudit.d | 1 - libphobos/libdruntime/core/sys/windows/lmbrowsr.d | 1 - libphobos/libdruntime/core/sys/windows/lmchdev.d | 1 - libphobos/libdruntime/core/sys/windows/lmconfig.d | 1 - libphobos/libdruntime/core/sys/windows/lmcons.d | 1 - libphobos/libdruntime/core/sys/windows/lmerr.d | 1 - libphobos/libdruntime/core/sys/windows/lmerrlog.d | 1 - libphobos/libdruntime/core/sys/windows/lmmsg.d | 1 - libphobos/libdruntime/core/sys/windows/lmremutl.d | 1 - libphobos/libdruntime/core/sys/windows/lmrepl.d | 1 - libphobos/libdruntime/core/sys/windows/lmserver.d | 1 - libphobos/libdruntime/core/sys/windows/lmshare.d | 1 - libphobos/libdruntime/core/sys/windows/lmsname.d | 1 - libphobos/libdruntime/core/sys/windows/lmstats.d | 1 - libphobos/libdruntime/core/sys/windows/lmsvc.d | 1 - libphobos/libdruntime/core/sys/windows/lmuse.d | 1 - libphobos/libdruntime/core/sys/windows/lmwksta.d | 1 - libphobos/libdruntime/core/sys/windows/lzexpand.d | 1 - libphobos/libdruntime/core/sys/windows/mapi.d | 1 - libphobos/libdruntime/core/sys/windows/mciavi.d | 1 - libphobos/libdruntime/core/sys/windows/mcx.d | 1 - libphobos/libdruntime/core/sys/windows/mgmtapi.d | 1 - libphobos/libdruntime/core/sys/windows/mmsystem.d | 1 - libphobos/libdruntime/core/sys/windows/msacm.d | 1 - libphobos/libdruntime/core/sys/windows/mshtml.d | 1 - libphobos/libdruntime/core/sys/windows/mswsock.d | 1 - libphobos/libdruntime/core/sys/windows/nb30.d | 1 - libphobos/libdruntime/core/sys/windows/nddeapi.d | 1 - libphobos/libdruntime/core/sys/windows/nspapi.d | 1 - libphobos/libdruntime/core/sys/windows/ntdef.d | 1 - libphobos/libdruntime/core/sys/windows/ntdll.d | 1 - libphobos/libdruntime/core/sys/windows/ntldap.d | 1 - libphobos/libdruntime/core/sys/windows/ntsecapi.d | 1 - libphobos/libdruntime/core/sys/windows/ntsecpkg.d | 1 - libphobos/libdruntime/core/sys/windows/oaidl.d | 1 - libphobos/libdruntime/core/sys/windows/objbase.d | 1 - libphobos/libdruntime/core/sys/windows/objfwd.d | 1 - libphobos/libdruntime/core/sys/windows/objidl.d | 1 - libphobos/libdruntime/core/sys/windows/objsafe.d | 1 - libphobos/libdruntime/core/sys/windows/ocidl.d | 1 - libphobos/libdruntime/core/sys/windows/odbcinst.d | 1 - libphobos/libdruntime/core/sys/windows/ole.d | 1 - libphobos/libdruntime/core/sys/windows/ole2.d | 1 - libphobos/libdruntime/core/sys/windows/oleacc.d | 1 - libphobos/libdruntime/core/sys/windows/oleauto.d | 1 - libphobos/libdruntime/core/sys/windows/olectl.d | 1 - libphobos/libdruntime/core/sys/windows/oledlg.d | 1 - libphobos/libdruntime/core/sys/windows/oleidl.d | 1 - libphobos/libdruntime/core/sys/windows/pbt.d | 1 - libphobos/libdruntime/core/sys/windows/powrprof.d | 1 - libphobos/libdruntime/core/sys/windows/prsht.d | 1 - libphobos/libdruntime/core/sys/windows/psapi.d | 1 - libphobos/libdruntime/core/sys/windows/rapi.d | 1 - libphobos/libdruntime/core/sys/windows/ras.d | 1 - libphobos/libdruntime/core/sys/windows/rasdlg.d | 1 - libphobos/libdruntime/core/sys/windows/raserror.d | 1 - libphobos/libdruntime/core/sys/windows/rassapi.d | 1 - libphobos/libdruntime/core/sys/windows/reason.d | 1 - libphobos/libdruntime/core/sys/windows/regstr.d | 1 - libphobos/libdruntime/core/sys/windows/richedit.d | 1 - libphobos/libdruntime/core/sys/windows/richole.d | 1 - libphobos/libdruntime/core/sys/windows/rpc.d | 1 - libphobos/libdruntime/core/sys/windows/rpcdce.d | 1 - libphobos/libdruntime/core/sys/windows/rpcdce2.d | 1 - libphobos/libdruntime/core/sys/windows/rpcdcep.d | 1 - libphobos/libdruntime/core/sys/windows/rpcndr.d | 1 - libphobos/libdruntime/core/sys/windows/rpcnsi.d | 1 - libphobos/libdruntime/core/sys/windows/rpcnsip.d | 1 - libphobos/libdruntime/core/sys/windows/rpcnterr.d | 1 - libphobos/libdruntime/core/sys/windows/schannel.d | 1 - libphobos/libdruntime/core/sys/windows/sdkddkver.d | 1 - libphobos/libdruntime/core/sys/windows/secext.d | 1 - libphobos/libdruntime/core/sys/windows/security.d | 1 - libphobos/libdruntime/core/sys/windows/servprov.d | 1 - libphobos/libdruntime/core/sys/windows/setupapi.d | 1 - libphobos/libdruntime/core/sys/windows/shellapi.d | 1 - libphobos/libdruntime/core/sys/windows/shldisp.d | 1 - libphobos/libdruntime/core/sys/windows/shlguid.d | 1 - libphobos/libdruntime/core/sys/windows/shlobj.d | 1 - libphobos/libdruntime/core/sys/windows/shlwapi.d | 1 - libphobos/libdruntime/core/sys/windows/snmp.d | 1 - libphobos/libdruntime/core/sys/windows/sql.d | 1 - libphobos/libdruntime/core/sys/windows/sqlext.d | 1 - libphobos/libdruntime/core/sys/windows/sqltypes.d | 1 - libphobos/libdruntime/core/sys/windows/sqlucode.d | 1 - libphobos/libdruntime/core/sys/windows/sspi.d | 1 - .../libdruntime/core/sys/windows/stacktrace.d | 1 - libphobos/libdruntime/core/sys/windows/stat.d | 1 - .../libdruntime/core/sys/windows/stdc/malloc.d | 1 - libphobos/libdruntime/core/sys/windows/subauth.d | 1 - libphobos/libdruntime/core/sys/windows/threadaux.d | 1 - libphobos/libdruntime/core/sys/windows/tlhelp32.d | 1 - libphobos/libdruntime/core/sys/windows/tmschema.d | 1 - libphobos/libdruntime/core/sys/windows/unknwn.d | 1 - libphobos/libdruntime/core/sys/windows/uuid.d | 1 - libphobos/libdruntime/core/sys/windows/vfw.d | 1 - libphobos/libdruntime/core/sys/windows/w32api.d | 1 - libphobos/libdruntime/core/sys/windows/winbase.d | 1 - libphobos/libdruntime/core/sys/windows/winber.d | 1 - libphobos/libdruntime/core/sys/windows/wincon.d | 1 - libphobos/libdruntime/core/sys/windows/wincrypt.d | 1 - libphobos/libdruntime/core/sys/windows/windef.d | 1 - libphobos/libdruntime/core/sys/windows/windows.d | 1 - libphobos/libdruntime/core/sys/windows/winerror.d | 1 - libphobos/libdruntime/core/sys/windows/wingdi.d | 1 - libphobos/libdruntime/core/sys/windows/winhttp.d | 1 - libphobos/libdruntime/core/sys/windows/wininet.d | 1 - libphobos/libdruntime/core/sys/windows/winioctl.d | 1 - libphobos/libdruntime/core/sys/windows/winldap.d | 1 - libphobos/libdruntime/core/sys/windows/winnetwk.d | 1 - libphobos/libdruntime/core/sys/windows/winnls.d | 1 - libphobos/libdruntime/core/sys/windows/winnt.d | 1 - libphobos/libdruntime/core/sys/windows/winperf.d | 1 - libphobos/libdruntime/core/sys/windows/winreg.d | 1 - libphobos/libdruntime/core/sys/windows/winsock2.d | 1 - libphobos/libdruntime/core/sys/windows/winspool.d | 1 - libphobos/libdruntime/core/sys/windows/winsvc.d | 1 - libphobos/libdruntime/core/sys/windows/winuser.d | 1 - libphobos/libdruntime/core/sys/windows/winver.d | 1 - libphobos/libdruntime/core/sys/windows/wtsapi32.d | 1 - libphobos/libdruntime/core/sys/windows/wtypes.d | 1 - libphobos/libdruntime/rt/dmain2.d | 2 +- libphobos/src/std/algorithm/iteration.d | 25 +- libphobos/src/std/algorithm/mutation.d | 1 + libphobos/src/std/array.d | 3 +- libphobos/src/std/ascii.d | 6 +- libphobos/src/std/base64.d | 4 +- libphobos/src/std/bitmanip.d | 98 +-- libphobos/src/std/container/binaryheap.d | 2 + libphobos/src/std/digest/murmurhash.d | 10 +- libphobos/src/std/exception.d | 203 +++-- libphobos/src/std/experimental/allocator/common.d | 20 + libphobos/src/std/file.d | 55 +- libphobos/src/std/format/internal/write.d | 44 +- libphobos/src/std/internal/windows/advapi32.d | 4 +- libphobos/src/std/json.d | 3 + libphobos/src/std/net/curl.d | 2 +- libphobos/src/std/random.d | 24 +- libphobos/src/std/stdio.d | 6 +- libphobos/src/std/string.d | 1 + libphobos/src/std/traits.d | 8 + libphobos/src/std/typecons.d | 802 ++++++++++++++++--- libphobos/src/std/uni/package.d | 11 +- libstdc++-v3/Makefile.in | 1 - libstdc++-v3/aclocal.m4 | 1 - libstdc++-v3/config.h.in | 15 - libstdc++-v3/configure.ac | 6 - libstdc++-v3/doc/Makefile.in | 1 - libstdc++-v3/include/Makefile.in | 1 - libstdc++-v3/include/bits/locale_classes.tcc | 3 + libstdc++-v3/include/bits/regex_executor.tcc | 3 +- libstdc++-v3/libsupc++/Makefile.in | 1 - libstdc++-v3/po/Makefile.in | 1 - libstdc++-v3/python/Makefile.in | 1 - libstdc++-v3/src/Makefile.in | 1 - libstdc++-v3/src/c++11/Makefile.in | 1 - libstdc++-v3/src/c++17/Makefile.in | 1 - libstdc++-v3/src/c++20/Makefile.in | 1 - libstdc++-v3/src/c++98/Makefile.in | 1 - libstdc++-v3/src/filesystem/Makefile.in | 1 - libstdc++-v3/src/libbacktrace/Makefile.in | 1 - libstdc++-v3/testsuite/Makefile.in | 1 - libvtv/configure.tgt | 3 + ChangeLog | 4 + MAINTAINERS | 2 +- gcc/ChangeLog | 831 ++++++++++++++++++++ gcc/DATESTAMP | 2 +- gcc/analyzer/ChangeLog | 11 + gcc/c-family/ChangeLog | 22 + gcc/c/ChangeLog | 83 ++ gcc/config/i386/t-cygming | 4 + gcc/config/riscv/arch-canonicalize | 5 + gcc/config/riscv/t-riscv | 4 + gcc/config/t-glibc | 10 +- gcc/config/t-linux | 4 + gcc/configure | 8 +- gcc/cp/ChangeLog | 124 +++ gcc/d/ChangeLog | 29 + gcc/d/dmd/MERGE | 2 +- gcc/d/dmd/VERSION | 2 +- gcc/fortran/ChangeLog | 11 + gcc/go/gofrontend/MERGE | 2 +- gcc/lto/ChangeLog | 22 + gcc/objc/ChangeLog | 5 + gcc/testsuite/ChangeLog | 321 ++++++++ include/ChangeLog | 12 + libgomp/ChangeLog | 10 + libitm/ChangeLog | 7 + libphobos/ChangeLog | 5 + libphobos/libdruntime/MERGE | 2 +- libphobos/src/MERGE | 2 +- libstdc++-v3/ChangeLog | 85 ++ libstdc++-v3/configure | 867 +-------------------- libstdc++-v3/include/c_global/cmath | 8 +- libstdc++-v3/include/std/complex | 641 ++++++++++++++- libstdc++-v3/include/std/functional | 66 +- libvtv/ChangeLog | 5 + 753 files changed, 16473 insertions(+), 4455 deletions(-) diff --cc gcc/cp/cp-tree.h index 4b5d14f6a29,6d84514e4c0..f4104c8751d --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@@ -7572,13 -7446,11 +7550,13 @@@ extern tree get_function_template_dec extern tree resolve_nondeduced_context (tree, tsubst_flags_t); extern tree resolve_nondeduced_context_or_error (tree, tsubst_flags_t); extern hashval_t iterative_hash_template_arg (tree arg, hashval_t val); - extern tree coerce_template_parms (tree, tree, tree); - extern tree coerce_template_parms (tree, tree, tree, tsubst_flags_t); + extern tree coerce_template_parms (tree, tree, tree, tsubst_flags_t, + bool = true); extern tree canonicalize_type_argument (tree, tsubst_flags_t); +extern void register_local_identity (tree); extern void register_local_specialization (tree, tree); extern tree retrieve_local_specialization (tree); +extern void register_parameter_specializations (tree, tree); extern tree extract_fnparm_pack (tree, tree *); extern tree template_parm_to_arg (tree); extern tree dguide_name (tree); diff --cc gcc/cp/typeck.cc index 7a1ecb2595a,2e0fd8fbf17..50185a0fac8 --- a/gcc/cp/typeck.cc +++ b/gcc/cp/typeck.cc @@@ -11246,15 -11247,20 +11247,26 @@@ check_return_expr (tree retval, bool *n if (processing_template_decl) return saved_retval; + /* A naive attempt to reduce the number of -Wdangling-reference false + positives: if we know that this function can return a variable with + static storage duration rather than one of its parameters, suppress + the warning. */ + if (warn_dangling_reference + && TYPE_REF_P (functype) + && bare_retval + && VAR_P (bare_retval) + && TREE_STATIC (bare_retval)) + suppress_warning (current_function_decl, OPT_Wdangling_reference); + /* Actually copy the value returned into the appropriate location. */ if (retval && retval != result) - retval = cp_build_init_expr (result, retval); + { + /* If there's a postcondition for a scalar return value, wrap + retval in a call to the postcondition function. */ + if (tree post = apply_postcondition_to_return (retval)) + retval = post; + retval = cp_build_init_expr (result, retval); + } if (tree set = maybe_set_retval_sentinel ()) retval = build2 (COMPOUND_EXPR, void_type_node, retval, set);