Hi, This patch merges the D front-end/run-time library with upstream dmd c8ae4adb2e, and standard library with phobos 792c8b7c1. Synchronizing the latest bug fixes in the v2.101.0 release. D front-end changes: - Import dmd v2.101.0. - Deprecate the ability to call `__traits(getAttributes)' on overload sets. - Deprecate non-empty `for' statement increment clause with no effect. - Array literals assigned to `scope' array variables can now be allocated on the stack. D runtime changes: - Import druntime v2.101.0. Phobos changes: - Import phobos v2.101.0. Bootstrapped and regression tested on x86_64-linux-gnu/-m32, committed to mainline. Regards, Iain. --- gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd c8ae4adb2e. * typeinfo.cc (check_typeinfo_type): Update for new front-end interface. (TypeInfoVisitor::visit (TypeInfoStructDeclaration *)): Remove warning that toHash() must be declared 'nothrow @safe`. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime c8ae4adb2e. * src/MERGE: Merge upstream phobos 792c8b7c1. --- gcc/d/dmd/MERGE | 2 +- gcc/d/dmd/aggregate.d | 8 +- gcc/d/dmd/attrib.d | 14 +- gcc/d/dmd/blockexit.d | 4 +- gcc/d/dmd/canthrow.d | 2 +- gcc/d/dmd/clone.d | 20 +- gcc/d/dmd/cond.d | 6 +- gcc/d/dmd/constfold.d | 56 ++-- gcc/d/dmd/cparse.d | 8 +- gcc/d/dmd/cppmangle.d | 22 +- gcc/d/dmd/ctfeexpr.d | 86 +++--- gcc/d/dmd/dcast.d | 40 +-- gcc/d/dmd/dclass.d | 29 +- gcc/d/dmd/declaration.d | 14 +- gcc/d/dmd/delegatize.d | 2 +- gcc/d/dmd/denum.d | 4 +- gcc/d/dmd/dimport.d | 12 +- gcc/d/dmd/dinterpret.d | 136 +++++---- gcc/d/dmd/dmangle.d | 12 +- gcc/d/dmd/dmodule.d | 30 +- gcc/d/dmd/doc.d | 54 ++-- gcc/d/dmd/dscope.d | 29 +- gcc/d/dmd/dstruct.d | 14 +- gcc/d/dmd/dsymbol.d | 48 +-- gcc/d/dmd/dsymbolsem.d | 169 +++++----- gcc/d/dmd/dtemplate.d | 288 +++++++++--------- gcc/d/dmd/dtoh.d | 4 +- gcc/d/dmd/escape.d | 73 ++--- gcc/d/dmd/expression.d | 78 +++-- gcc/d/dmd/expressionsem.d | 192 ++++++------ gcc/d/dmd/file_manager.d | 138 +++++++-- gcc/d/dmd/func.d | 118 +++---- gcc/d/dmd/hdrgen.d | 48 +-- gcc/d/dmd/iasmgcc.d | 6 +- gcc/d/dmd/init.d | 16 +- gcc/d/dmd/initsem.d | 28 +- gcc/d/dmd/json.d | 30 +- gcc/d/dmd/lambdacomp.d | 2 +- gcc/d/dmd/lexer.d | 56 ++-- gcc/d/dmd/mtype.d | 36 +-- gcc/d/dmd/nogc.d | 10 +- gcc/d/dmd/ob.d | 2 +- gcc/d/dmd/objc.d | 4 +- gcc/d/dmd/opover.d | 34 +-- gcc/d/dmd/optimize.d | 4 +- gcc/d/dmd/parse.d | 78 +++-- gcc/d/dmd/root/array.d | 4 +- gcc/d/dmd/root/filename.d | 2 +- gcc/d/dmd/root/utf.d | 20 ++ gcc/d/dmd/sapply.d | 6 +- gcc/d/dmd/scope.h | 78 ++--- gcc/d/dmd/semantic2.d | 14 +- gcc/d/dmd/semantic3.d | 24 +- gcc/d/dmd/statement.d | 12 +- gcc/d/dmd/statement_rewrite_walker.d | 12 +- gcc/d/dmd/statementsem.d | 141 ++++----- gcc/d/dmd/traits.d | 50 ++- gcc/d/dmd/transitivevisitor.d | 8 +- gcc/d/dmd/typesem.d | 70 ++--- gcc/d/typeinfo.cc | 13 +- gcc/testsuite/gdc.test/compilable/nogc.d | 3 +- gcc/testsuite/gdc.test/compilable/test15712.d | 12 + gcc/testsuite/gdc.test/compilable/test23431.d | 14 + .../gdc.test/compilable/test23431_minimal.d | 28 ++ gcc/testsuite/gdc.test/compilable/test23433.d | 16 + gcc/testsuite/gdc.test/compilable/test23439.d | 8 + gcc/testsuite/gdc.test/compilable/test23534.d | 6 + gcc/testsuite/gdc.test/compilable/test4375.d | 2 +- gcc/testsuite/gdc.test/compilable/vgc2.d | 3 +- .../gdc.test/fail_compilation/diag14818.d | 16 +- .../gdc.test/fail_compilation/diag8101.d | 5 +- .../gdc.test/fail_compilation/diag_funclit.d | 14 +- .../gdc.test/fail_compilation/diagin.d | 2 +- .../gdc.test/fail_compilation/fail12.d | 4 +- .../gdc.test/fail_compilation/fail15414.d | 21 ++ .../gdc.test/fail_compilation/fail15616b.d | 1 - .../gdc.test/fail_compilation/fail1900.d | 8 +- .../gdc.test/fail_compilation/fail22366.d | 32 +- .../gdc.test/fail_compilation/fail23439.d | 13 + .../gdc.test/fail_compilation/fail320.d | 9 +- .../gdc.test/fail_compilation/fail54.d | 10 +- .../gdc.test/fail_compilation/fail99.d | 2 +- .../gdc.test/fail_compilation/fail_arrayop2.d | 4 +- .../fail_compilation/fail_pretty_errors.d | 18 +- .../gdc.test/fail_compilation/ice10922.d | 2 +- .../gdc.test/fail_compilation/ice13459.d | 2 +- .../gdc.test/fail_compilation/ice9540.d | 2 +- .../fail_compilation/imports/fail320a.d | 1 + .../fail_compilation/imports/fail320b.d | 3 +- .../gdc.test/fail_compilation/lexer23465.d | 21 ++ .../gdc.test/fail_compilation/misc1.d | 22 ++ .../gdc.test/fail_compilation/nogc2.d | 3 +- .../gdc.test/fail_compilation/retscope.d | 4 +- .../gdc.test/fail_compilation/retscope2.d | 4 +- .../fail_compilation/templateoverload.d | 22 ++ .../gdc.test/fail_compilation/test19646.d | 8 +- .../gdc.test/fail_compilation/test21008.d | 6 +- .../gdc.test/fail_compilation/test21062.d | 24 ++ .../gdc.test/fail_compilation/test23491.d | 19 ++ .../gdc.test/fail_compilation/test23536.d | 19 ++ .../gdc.test/fail_compilation/throwexp.d | 12 + .../gdc.test/fail_compilation/warn14905.d | 23 -- gcc/testsuite/gdc.test/runnable/lexer.d | 9 +- gcc/testsuite/gdc.test/runnable/test21301.d | 116 +++++++ gcc/testsuite/gdc.test/runnable/test21506.d | 40 +++ libphobos/libdruntime/MERGE | 2 +- libphobos/libdruntime/core/demangle.d | 101 +++++- libphobos/libdruntime/core/exception.d | 24 +- libphobos/libdruntime/core/internal/gc/os.d | 3 - libphobos/libdruntime/core/runtime.d | 2 +- libphobos/libdruntime/core/sync/condition.d | 35 +-- libphobos/libdruntime/core/sync/mutex.d | 2 +- .../libdruntime/core/sys/posix/sys/wait.d | 1 + .../libdruntime/core/sys/windows/winsock2.d | 4 +- libphobos/src/MERGE | 2 +- libphobos/src/std/algorithm/mutation.d | 2 +- libphobos/src/std/algorithm/sorting.d | 2 +- libphobos/src/std/array.d | 9 +- libphobos/src/std/base64.d | 6 +- libphobos/src/std/bitmanip.d | 4 +- libphobos/src/std/checkedint.d | 18 +- libphobos/src/std/concurrency.d | 4 +- libphobos/src/std/container/array.d | 28 +- libphobos/src/std/container/binaryheap.d | 4 +- libphobos/src/std/conv.d | 26 +- libphobos/src/std/datetime/systime.d | 4 +- libphobos/src/std/digest/hmac.d | 4 +- libphobos/src/std/exception.d | 8 +- .../allocator/building_blocks/package.d | 12 +- .../src/std/experimental/allocator/package.d | 17 +- libphobos/src/std/file.d | 13 +- libphobos/src/std/format/internal/write.d | 20 +- libphobos/src/std/format/package.d | 31 +- libphobos/src/std/format/write.d | 20 ++ libphobos/src/std/getopt.d | 2 +- libphobos/src/std/math/hardware.d | 124 +++++--- libphobos/src/std/process.d | 13 +- libphobos/src/std/range/package.d | 26 +- libphobos/src/std/socket.d | 29 +- libphobos/src/std/stdio.d | 210 +++++++------ libphobos/src/std/sumtype.d | 10 +- libphobos/src/std/traits.d | 28 +- libphobos/src/std/typecons.d | 10 +- libphobos/src/std/uni/package.d | 4 +- libphobos/src/std/utf.d | 4 +- libphobos/src/std/windows/registry.d | 2 +- 146 files changed, 2457 insertions(+), 1546 deletions(-) create mode 100644 gcc/testsuite/gdc.test/compilable/test15712.d create mode 100644 gcc/testsuite/gdc.test/compilable/test23431.d create mode 100644 gcc/testsuite/gdc.test/compilable/test23431_minimal.d create mode 100644 gcc/testsuite/gdc.test/compilable/test23433.d create mode 100644 gcc/testsuite/gdc.test/compilable/test23439.d create mode 100644 gcc/testsuite/gdc.test/compilable/test23534.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/fail15414.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/fail23439.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/lexer23465.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/templateoverload.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test21062.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test23491.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test23536.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/throwexp.d delete mode 100644 gcc/testsuite/gdc.test/fail_compilation/warn14905.d create mode 100644 gcc/testsuite/gdc.test/runnable/test21301.d create mode 100644 gcc/testsuite/gdc.test/runnable/test21506.d