d: Merge upstream dmd e49192807
authorIain Buclaw <ibuclaw@gdcproject.org>
Tue, 25 Aug 2020 20:13:52 +0000 (22:13 +0200)
committerIain Buclaw <ibuclaw@gdcproject.org>
Wed, 26 Aug 2020 08:03:56 +0000 (10:03 +0200)
commitf0a0a84cd9a75052114066a15beebeee8c2cf8ab
treecab389d5cbf87ed0d467a59f344c83056632070c
parent87e36d9baf41a8642ca8687e846764e0828a088b
d: Merge upstream dmd e49192807

1. Removes prelude assert for constructors and destructors.  To trigger
these asserts one needed to construct or destruct an aggregate at the
null memory location.  This would crash upon any data member access,
which is required for a constructor or destructor to do anything useful.

2. Disables bounds checking in foreach statements, when the array is
either a static or dynamic array.  If we trust the array `.length' to
be correct, then all elements are between `[0 .. length]', and can't
can't be out of bounds.

Reviewed-on: https://github.com/dlang/dmd/pull/11623

gcc/d/ChangeLog:

* dmd/MERGE: Merge upstream dmd e49192807
gcc/d/dmd/MERGE
gcc/d/dmd/func.c
gcc/d/dmd/statementsem.c