d: Merge upstream dmd 76e3b41375, druntime 1462ebd1, phobos 5fef0d28f.
authorIain Buclaw <ibuclaw@gdcproject.org>
Tue, 26 Jul 2022 16:13:54 +0000 (18:13 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Tue, 26 Jul 2022 21:43:13 +0000 (23:43 +0200)
commit81a0fa31ce96327618023b476ea121dbe2494b04
tree7a92b40bb7124e7e2449fef9983e22db836a0f65
parent2009850b2b7042a678c385cd72e6ceb40caac8cd
d: Merge upstream dmd 76e3b41375, druntime 1462ebd1, phobos 5fef0d28f.

Updates D language version to v2.100.1.

D front-end changes:

    - Fix delegate literal with inferred return value that requires
      following alias-this to not use class cast.
    - Fix internal error on variadic template type instantiated with two
      arrays of classes.
    - `scope(failure)' blocks that contain `return' statements are now
      deprecated.
    - Fix regression where wrong cast was inserted for ternary operator
      and non-int enums.
    - Fix internal error in code generation trying to reference
      _d_arraysetctor.
    - Fix memory corruption when array literal is passed to map in
      lambda, then returned from nested function.
    - Generate invariant id on the basis of location rather than a
      global counter.
    - Make `noreturn' conversions work.
    - Fix segfault when `.stringof' of template alias overloaded with
      function accessed by trait.
    - Empty array literal passed to scope param not 'falsey' anymore.

Phobos changes:

    - Avoid copying ranges in std.algorithm.comparison.equal.

gcc/d/ChangeLog:

* dmd/MERGE: Merge upstream dmd 76e3b41375.
* dmd/VERSION: Bump version to v2.100.1.
* decl.cc (DeclVisitor::visit (VarDeclaration *)): Evaluate RHS
  of noreturn declaration expressions first.
* expr.cc (ExprVisitor::visit (AssignExp *)): Don't generate
  assignment for noreturn types.

libphobos/ChangeLog:

* libdruntime/MERGE: Merge upstream druntime 1462ebd1.
* src/MERGE: Merge upstream phobos 5fef0d28f.
31 files changed:
gcc/d/decl.cc
gcc/d/dmd/MERGE
gcc/d/dmd/VERSION
gcc/d/dmd/dcast.d
gcc/d/dmd/dsymbolsem.d
gcc/d/dmd/expressionsem.d
gcc/d/dmd/func.d
gcc/d/dmd/impcnvtab.d
gcc/d/dmd/mtype.d
gcc/d/dmd/statementsem.d
gcc/d/expr.cc
gcc/testsuite/gdc.test/compilable/backendfloatoptim.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/noreturn1.d
gcc/testsuite/gdc.test/compilable/test23082.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test23166.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test23172.d [new file with mode: 0644]
gcc/testsuite/gdc.test/compilable/test23258.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/fail23181.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/fail6889.d
gcc/testsuite/gdc.test/fail_compilation/fail7848.d
gcc/testsuite/gdc.test/fail_compilation/test21443.d [new file with mode: 0644]
gcc/testsuite/gdc.test/fail_compilation/test23170.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/noreturn1.d
gcc/testsuite/gdc.test/runnable/test20734.d
gcc/testsuite/gdc.test/runnable/test23181.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/test23234.d [new file with mode: 0644]
gcc/testsuite/gdc.test/runnable/warning1.d
libphobos/libdruntime/MERGE
libphobos/src/MERGE
libphobos/src/std/algorithm/comparison.d
libphobos/src/std/typecons.d