aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/dmd/canthrow.d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2022-09-27 10:43:32 +0200
committerIain Buclaw <ibuclaw@gdcproject.org>2022-09-27 10:50:18 +0200
commitc8dfa79c9948ce09a7b4071f8059294b1972aef6 (patch)
treecb93655417a5475c6baac88691fc92621b3fa7ce /gcc/d/dmd/canthrow.d
parentbe4a6551ed37c1e7dbdfb9400fc2e2b5d40c5be2 (diff)
downloadgcc-c8dfa79c9948ce09a7b4071f8059294b1972aef6.zip
gcc-c8dfa79c9948ce09a7b4071f8059294b1972aef6.tar.gz
gcc-c8dfa79c9948ce09a7b4071f8059294b1972aef6.tar.bz2
d: Merge upstream dmd d579c467c1, phobos 88aa69b14.
D front-end changes: - Throwing from contracts of `nothrow' functions has been deprecated, as this breaks the guarantees of `nothrow'. - Added language support for initializing the interior pointer of associative arrays using `new' keyword. Phobos changes: - The std.digest.digest module has been removed. - The std.xml module has been removed. gcc/d/ChangeLog: * dmd/MERGE: Merge upstream dmd d579c467c1. * decl.cc (layout_struct_initializer): Update for new front-end interface. * expr.cc (ExprVisitor::visit (AssignExp *)): Remove lowering of array assignments. (ExprVisitor::visit (NewExp *)): Add new lowering of new'ing associative arrays to an _aaNew() library call. * runtime.def (ARRAYSETASSIGN): Remove. (AANEW): Define. libphobos/ChangeLog: * libdruntime/MERGE: Merge upstream druntime d579c467c1. * libdruntime/Makefile.am (DRUNTIME_DSOURCES): Remove rt/arrayassign.d. * libdruntime/Makefile.in: Regenerate. * src/MERGE: Merge upstream phobos 88aa69b14. * src/Makefile.am (PHOBOS_DSOURCES): Remove std/digest/digest.d, std/xml.d. * src/Makefile.in: Regenerate.
Diffstat (limited to 'gcc/d/dmd/canthrow.d')
-rw-r--r--gcc/d/dmd/canthrow.d6
1 files changed, 1 insertions, 5 deletions
diff --git a/gcc/d/dmd/canthrow.d b/gcc/d/dmd/canthrow.d
index 088ca61..09e3833 100644
--- a/gcc/d/dmd/canthrow.d
+++ b/gcc/d/dmd/canthrow.d
@@ -111,13 +111,9 @@ extern (C++) /* CT */ BE canThrow(Expression e, FuncDeclaration func, bool mustN
auto ts = tbNext.baseElemOf().isTypeStruct();
if (ts)
{
- import dmd.id : Id;
-
auto sd = ts.sym;
const id = ce.f.ident;
- if (sd.postblit &&
- (id == Id._d_arrayctor || id == Id._d_arraysetctor ||
- id == Id._d_arrayassign_l || id == Id._d_arrayassign_r))
+ if (sd.postblit && isArrayConstructionOrAssign(id))
{
checkFuncThrows(ce, sd.postblit);
return;