Hi, This patch merges the D front-end and runtime library with upstream dmd a6f1083699, and the standard library with phobos 31dedd7da. D front-end changes: - Import dmd v2.107.0. - Character postfixes can now also be used for integers of size two or four. D run-time changes: - Import druntime v2.107.0. Phobos changes: - Import phobos v2.107.0. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd a6f1083699. * dmd/VERSION: Bump version to v2.107.0 * Make-lang.in (D_FRONTEND_OBJS): Add d/pragmasem.o. * d-builtins.cc (strip_type_modifiers): Update for new front-end interface. * d-codegen.cc (declaration_type): Likewise. (parameter_type): Likewise. * d-target.cc (TargetCPP::parameterType): Likewise. * expr.cc (ExprVisitor::visit (IndexExp *)): Likewise. (ExprVisitor::visit (VarExp *)): Likewise. (ExprVisitor::visit (AssocArrayLiteralExp *)): Likewise. * runtime.cc (get_libcall_type): Likewise. * typeinfo.cc (TypeInfoVisitor::visit (TypeInfoConstDeclaration *)): Likewise. (TypeInfoVisitor::visit (TypeInfoInvariantDeclaration *)): Likewise. (TypeInfoVisitor::visit (TypeInfoSharedDeclaration *)): Likewise. (TypeInfoVisitor::visit (TypeInfoWildDeclaration *)): Likewise. * types.cc (build_ctype): Likewise. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime a6f1083699. * src/MERGE: Merge upstream phobos 31dedd7da. Bootstrapped and regression tested on x86_64-linux-gnu/-m32, committed to mainline. Regards, Iain. --- gcc/d/Make-lang.in | 1 + gcc/d/d-builtins.cc | 2 +- gcc/d/d-codegen.cc | 4 +- gcc/d/d-target.cc | 4 +- gcc/d/dmd/MERGE | 2 +- gcc/d/dmd/README.md | 1 + gcc/d/dmd/VERSION | 2 +- gcc/d/dmd/constfold.d | 6 +- gcc/d/dmd/cparse.d | 2 +- gcc/d/dmd/ctfeexpr.d | 2 +- gcc/d/dmd/dcast.d | 20 +- gcc/d/dmd/dclass.d | 1 + gcc/d/dmd/declaration.h | 1 - gcc/d/dmd/denum.d | 7 +- gcc/d/dmd/dinterpret.d | 43 +- gcc/d/dmd/dmangle.d | 20 +- gcc/d/dmd/dsymbol.h | 2 +- gcc/d/dmd/dsymbolsem.d | 1888 ++--------------- gcc/d/dmd/dtemplate.d | 759 +------ gcc/d/dmd/dtoh.d | 1 + gcc/d/dmd/enumsem.d | 6 + gcc/d/dmd/expression.d | 3 +- gcc/d/dmd/expression.h | 3 +- gcc/d/dmd/expressionsem.d | 31 +- gcc/d/dmd/func.d | 172 +- gcc/d/dmd/funcsem.d | 1150 ++++++++++ gcc/d/dmd/hdrgen.d | 3 +- gcc/d/dmd/initsem.d | 86 +- gcc/d/dmd/mtype.d | 353 +-- gcc/d/dmd/mtype.h | 26 +- gcc/d/dmd/opover.d | 1 + gcc/d/dmd/optimize.d | 3 +- gcc/d/dmd/pragmasem.d | 650 ++++++ gcc/d/dmd/scope.h | 2 +- gcc/d/dmd/semantic2.d | 23 +- gcc/d/dmd/sideeffect.d | 10 + gcc/d/dmd/statementsem.d | 181 +- gcc/d/dmd/templatesem.d | 909 +++++++- gcc/d/dmd/typesem.d | 304 ++- gcc/d/dmd/utils.d | 41 + gcc/d/expr.cc | 9 +- gcc/d/runtime.cc | 6 +- gcc/d/typeinfo.cc | 8 +- gcc/d/types.cc | 2 +- gcc/testsuite/gdc.test/compilable/ddoc4162.d | 2 +- gcc/testsuite/gdc.test/compilable/ddoc5446.d | 2 +- gcc/testsuite/gdc.test/compilable/ddoc7795.d | 2 +- .../compilable/{ddoc12.d => ddoc_bom_UTF8.d} | 0 gcc/testsuite/gdc.test/compilable/test24338.d | 10 + .../gdc.test/fail_compilation/discard_value.d | 34 + .../gdc.test/fail_compilation/fail12390.d | 16 - .../gdc.test/fail_compilation/gag4269a.d | 2 +- .../gdc.test/fail_compilation/gag4269b.d | 2 +- .../gdc.test/fail_compilation/gag4269c.d | 2 +- .../gdc.test/fail_compilation/gag4269d.d | 2 +- .../gdc.test/fail_compilation/gag4269e.d | 2 +- .../gdc.test/fail_compilation/gag4269f.d | 2 +- .../gdc.test/fail_compilation/gag4269g.d | 2 +- .../gdc.test/fail_compilation/hexstring.d | 8 +- .../gdc.test/fail_compilation/ice10599.d | 2 +- .../gdc.test/fail_compilation/test24365.d | 20 + gcc/testsuite/gdc.test/runnable/helloUTF8.d | 16 - gcc/testsuite/gdc.test/runnable/literal.d | 13 + gcc/testsuite/gdc.test/runnable/staticaa.d | 12 + gcc/testsuite/gdc.test/runnable/xtestenum.d | 14 + libphobos/libdruntime/MERGE | 2 +- libphobos/libdruntime/core/atomic.d | 44 +- libphobos/libdruntime/core/demangle.d | 936 +++++--- libphobos/libdruntime/core/internal/atomic.d | 650 +++--- libphobos/libdruntime/core/internal/traits.d | 4 +- libphobos/libdruntime/core/stdc/stdatomic.d | 577 ++--- libphobos/libdruntime/core/thread/fiber.d | 21 +- libphobos/src/MERGE | 2 +- libphobos/src/std/algorithm/searching.d | 14 +- 74 files changed, 4713 insertions(+), 4452 deletions(-) create mode 100644 gcc/d/dmd/pragmasem.d rename gcc/testsuite/gdc.test/compilable/{ddoc12.d => ddoc_bom_UTF8.d} (100%) create mode 100644 gcc/testsuite/gdc.test/compilable/test24338.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/discard_value.d delete mode 100644 gcc/testsuite/gdc.test/fail_compilation/fail12390.d create mode 100644 gcc/testsuite/gdc.test/fail_compilation/test24365.d delete mode 100644 gcc/testsuite/gdc.test/runnable/helloUTF8.d