Hi, This patch merges the D front-end and run-time library with upstream dmd 4574d1728d, and standard library with phobos d7e79f024. Updating the latest changes from the v2.105.0 release. D front-end changes: - Import dmd v2.105.0. - Catch clause must take only `const' or mutable exceptions. - Creating a `scope' class instance with a non-scope constructor is now `@system' only with `-fpreview=dip1000'. - Global `const' variables can no longer be initialized from a non-shared static constructor D runtime changes: - Import druntime v2.105.0. Phobos changes: - Import phobos v2.105.0. Bootstrapped and regression tested on x86_64-linux-gnu/-m32, committed to mainline. Regards, Iain. --- gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd 4574d1728d. * dmd/VERSION: Bump version to v2.105.0. * d-diagnostic.cc (verror): Remove. (verrorSupplemental): Remove. (vwarning): Remove. (vwarningSupplemental): Remove. (vdeprecation): Remove. (vdeprecationSupplemental): Remove. (vmessage): Remove. (vtip): Remove. (verrorReport): New function. (verrorReportSupplemental): New function. * d-lang.cc (d_parse_file): Update for new front-end interface. * decl.cc (d_mangle_decl): Update for new front-end interface. * intrinsics.cc (maybe_set_intrinsic): Update for new front-end interface. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime 4574d1728d. * src/MERGE: Merge upstream phobos d7e79f024. --- gcc/d/d-diagnostic.cc | 199 +++++------- gcc/d/d-lang.cc | 6 +- gcc/d/decl.cc | 2 +- gcc/d/dmd/MERGE | 2 +- gcc/d/dmd/README.md | 3 +- gcc/d/dmd/VERSION | 2 +- gcc/d/dmd/access.d | 1 - gcc/d/dmd/aggregate.d | 2 +- gcc/d/dmd/aliasthis.d | 3 +- gcc/d/dmd/arrayop.d | 10 +- gcc/d/dmd/attrib.d | 47 ++- gcc/d/dmd/blockexit.d | 1 - gcc/d/dmd/canthrow.d | 3 +- gcc/d/dmd/common/file.d | 8 + gcc/d/dmd/common/outbuffer.d | 12 +- gcc/d/dmd/common/string.d | 5 +- gcc/d/dmd/cond.d | 16 +- gcc/d/dmd/constfold.d | 4 +- gcc/d/dmd/cppmangle.d | 18 +- gcc/d/dmd/ctfeexpr.d | 24 +- gcc/d/dmd/ctorflow.d | 8 +- gcc/d/dmd/dclass.d | 2 +- gcc/d/dmd/declaration.d | 30 +- gcc/d/dmd/declaration.h | 4 +- gcc/d/dmd/delegatize.d | 4 +- gcc/d/dmd/dinterpret.d | 17 +- gcc/d/dmd/dmangle.d | 66 ++-- gcc/d/dmd/dmodule.d | 6 +- gcc/d/dmd/doc.d | 99 +++--- gcc/d/dmd/doc.h | 3 +- gcc/d/dmd/dscope.d | 15 +- gcc/d/dmd/dsymbol.d | 52 +-- gcc/d/dmd/dsymbolsem.d | 30 +- gcc/d/dmd/dtemplate.d | 22 +- gcc/d/dmd/dtoh.d | 23 +- gcc/d/dmd/dversion.d | 8 +- gcc/d/dmd/errors.d | 180 ++++------- gcc/d/dmd/errors.h | 20 +- gcc/d/dmd/errorsink.d | 6 + gcc/d/dmd/escape.d | 2 +- gcc/d/dmd/expression.d | 303 +++++++++--------- gcc/d/dmd/expression.h | 1 + gcc/d/dmd/expressionsem.d | 49 ++- gcc/d/dmd/foreachvar.d | 2 +- gcc/d/dmd/func.d | 17 +- gcc/d/dmd/globals.d | 18 +- gcc/d/dmd/globals.h | 2 +- gcc/d/dmd/hdrgen.d | 16 +- gcc/d/dmd/id.d | 8 +- gcc/d/dmd/identifier.d | 6 +- gcc/d/dmd/imphint.d | 2 +- gcc/d/dmd/init.d | 14 +- gcc/d/dmd/intrange.d | 50 +-- gcc/d/dmd/json.d | 2 +- gcc/d/dmd/lambdacomp.d | 2 +- gcc/d/dmd/lexer.d | 2 +- gcc/d/dmd/location.d | 6 +- gcc/d/dmd/mangle.h | 8 +- gcc/d/dmd/mtype.d | 76 ++--- gcc/d/dmd/mtype.h | 3 +- gcc/d/dmd/mustuse.d | 4 +- gcc/d/dmd/nogc.d | 8 +- gcc/d/dmd/ob.d | 6 +- gcc/d/dmd/objc.d | 8 +- gcc/d/dmd/opover.d | 4 +- gcc/d/dmd/parse.d | 264 +++++++-------- gcc/d/dmd/postordervisitor.d | 2 +- gcc/d/dmd/printast.d | 2 +- gcc/d/dmd/root/complex.d | 8 +- gcc/d/dmd/root/filename.d | 9 +- gcc/d/dmd/root/longdouble.d | 3 + gcc/d/dmd/root/rmem.d | 2 +- gcc/d/dmd/root/utf.d | 10 +- gcc/d/dmd/sapply.d | 2 +- gcc/d/dmd/scope.h | 2 + gcc/d/dmd/semantic2.d | 7 +- gcc/d/dmd/semantic3.d | 10 +- gcc/d/dmd/sideeffect.d | 4 +- gcc/d/dmd/statement.d | 126 ++++---- gcc/d/dmd/statement.h | 1 + gcc/d/dmd/statementsem.d | 32 +- gcc/d/dmd/target.d | 10 +- gcc/d/dmd/templateparamsem.d | 2 +- gcc/d/dmd/tokens.d | 2 +- gcc/d/dmd/typesem.d | 17 +- gcc/d/dmd/visitor.d | 2 +- gcc/d/intrinsics.cc | 2 +- gcc/testsuite/gdc.test/compilable/test23145.d | 14 +- .../gdc.test/fail_compilation/biterrors3.d | 4 +- .../gdc.test/fail_compilation/bug8891.d | 2 +- .../fail_compilation/deprecatedinref.d | 10 - .../gdc.test/fail_compilation/diag15209.d | 4 +- .../gdc.test/fail_compilation/diag9451.d | 11 +- .../gdc.test/fail_compilation/diag9635.d | 4 +- .../fail_compilation/dip1000_deprecation.d | 20 +- .../gdc.test/fail_compilation/e15876_6.d | 2 +- .../gdc.test/fail_compilation/fail10285.d | 13 +- .../gdc.test/fail_compilation/fail11545.d | 4 +- .../gdc.test/fail_compilation/fail120.d | 4 +- .../gdc.test/fail_compilation/fail142.d | 5 +- .../gdc.test/fail_compilation/fail143.d | 2 +- .../gdc.test/fail_compilation/fail144.d | 2 +- .../gdc.test/fail_compilation/fail145.d | 2 +- .../gdc.test/fail_compilation/fail17955.d | 27 +- .../gdc.test/fail_compilation/fail20538.d | 6 +- .../gdc.test/fail_compilation/fail25.d | 2 +- .../gdc.test/fail_compilation/fail301.d | 2 +- .../gdc.test/fail_compilation/fail46.d | 2 +- .../gdc.test/fail_compilation/fail4923.d | 8 +- .../gdc.test/fail_compilation/fail50.d | 2 +- .../gdc.test/fail_compilation/fail61.d | 2 +- .../gdc.test/fail_compilation/fail66.d | 4 +- .../gdc.test/fail_compilation/fail7851.d | 6 +- .../gdc.test/fail_compilation/fail9613.d | 2 +- .../gdc.test/fail_compilation/fail_scope.d | 4 +- .../gdc.test/fail_compilation/failcontracts.d | 17 +- .../gdc.test/fail_compilation/ice15332.d | 4 +- .../gdc.test/fail_compilation/ice15922.d | 2 +- .../gdc.test/fail_compilation/ice20056.d | 2 +- .../gdc.test/fail_compilation/ice7645.d | 4 +- .../gdc.test/fail_compilation/ice9439.d | 2 +- .../fail_compilation/misc_parser_err_cov1.d | 2 +- .../gdc.test/fail_compilation/mixintype2.d | 8 +- .../gdc.test/fail_compilation/noreturn.d | 14 +- .../gdc.test/fail_compilation/noreturn2.d | 13 + .../fail_compilation/systemvariables.d | 27 +- .../gdc.test/fail_compilation/test13536.d | 4 +- .../gdc.test/fail_compilation/test16365.d | 4 +- .../gdc.test/fail_compilation/test21008.d | 4 +- .../gdc.test/fail_compilation/test9701.d | 42 +-- gcc/testsuite/gdc.test/runnable/aliasthis.d | 10 - gcc/testsuite/gdc.test/runnable/complex.d | 56 ++-- gcc/testsuite/gdc.test/runnable/interpret.d | 8 +- gcc/testsuite/gdc.test/runnable/template9.d | 2 +- gcc/testsuite/gdc.test/runnable/test17684.d | 10 - gcc/testsuite/gdc.test/runnable/test19782.d | 8 - gcc/testsuite/gdc.test/runnable/test20.d | 4 +- gcc/testsuite/gdc.test/runnable/test21039.d | 7 - gcc/testsuite/gdc.test/runnable/test23234.d | 7 - gcc/testsuite/gdc.test/runnable/test3449.d | 2 +- gcc/testsuite/gdc.test/runnable/test42.d | 2 +- .../gdc.test/runnable/testaliascast.d | 8 - gcc/testsuite/gdc.test/runnable/testassign.d | 6 +- gcc/testsuite/gdc.test/runnable/testconst.d | 6 +- gcc/testsuite/gdc.test/runnable/testswitch.d | 8 +- .../runnable/traits_getPointerBitmap.d | 29 ++ gcc/testsuite/gdc.test/runnable/xtest46.d | 4 - gcc/testsuite/gdc.test/runnable/xtest46_gc.d | 4 - libphobos/libdruntime/MERGE | 2 +- libphobos/libdruntime/core/demangle.d | 12 +- .../core/internal/array/appending.d | 4 +- .../core/internal/array/capacity.d | 2 +- .../core/internal/array/construction.d | 4 +- libphobos/libdruntime/core/memory.d | 8 +- .../libdruntime/core/sys/windows/basetsd.d | 31 +- .../libdruntime/core/sys/windows/mmsystem.d | 22 +- libphobos/libdruntime/core/sys/windows/ole.d | 2 +- libphobos/libdruntime/core/sys/windows/ras.d | 2 +- .../libdruntime/core/sys/windows/rpcdcep.d | 2 +- .../libdruntime/core/sys/windows/rpcndr.d | 2 +- .../libdruntime/core/sys/windows/sqltypes.d | 2 +- libphobos/libdruntime/core/sys/windows/vfw.d | 16 +- .../libdruntime/core/sys/windows/winbase.d | 2 +- .../libdruntime/core/sys/windows/wingdi.d | 100 +++--- .../libdruntime/core/sys/windows/winuser.d | 4 +- libphobos/libdruntime/object.d | 96 +++++- libphobos/src/MERGE | 2 +- libphobos/src/std/array.d | 38 ++- libphobos/src/std/conv.d | 95 +++--- libphobos/src/std/digest/md.d | 3 +- libphobos/src/std/digest/sha.d | 4 +- libphobos/src/std/exception.d | 25 +- libphobos/src/std/format/internal/write.d | 26 +- libphobos/src/std/int128.d | 273 ++++++++++++++-- libphobos/src/std/json.d | 53 +-- libphobos/src/std/math/package.d | 2 +- libphobos/src/std/range/package.d | 13 +- libphobos/src/std/regex/internal/ir.d | 2 +- libphobos/src/std/socket.d | 56 ++-- libphobos/src/std/stdio.d | 68 ++-- libphobos/src/std/traits.d | 84 ++--- libphobos/src/std/uni/package.d | 9 + 182 files changed, 2002 insertions(+), 1665 deletions(-) delete mode 100644 gcc/testsuite/gdc.test/fail_compilation/deprecatedinref.d