From: Iain Buclaw Date: Sun, 16 Jun 2019 07:49:30 +0000 (+0000) Subject: re PR d/90762 (ICE in resolvePropertiesX, at d/dmd/expression.c:251) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=87dda41e5a149c802df7b82dfcfe734081ff5f89;p=gcc.git re PR d/90762 (ICE in resolvePropertiesX, at d/dmd/expression.c:251) PR d/90762 d/dmd: Merge upstream dmd b0cd59177 Fixes segmentation fault in resolvePropertiesX. Reviewed-on: https://github.com/dlang/dmd/pull/10006 From-SVN: r272347 --- diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE index 865462d64fb..36f9aa9c241 100644 --- a/gcc/d/dmd/MERGE +++ b/gcc/d/dmd/MERGE @@ -1,4 +1,4 @@ -d912f4e495412b67f0a2e3b07f645909cfee0212 +b0cd591770fefb4db6eaba89b7a548ef1e980f5c The first line of this file holds the git revision number of the last merge done from the dlang/dmd repository. diff --git a/gcc/d/dmd/statementsem.c b/gcc/d/dmd/statementsem.c index ccf141ebb09..0dc5e77b410 100644 --- a/gcc/d/dmd/statementsem.c +++ b/gcc/d/dmd/statementsem.c @@ -3492,12 +3492,18 @@ public: } s->semantic(sc); - Module::addDeferredSemantic2(s); // Bugzilla 14666 - sc->insert(s); - - for (size_t j = 0; j < s->aliasdecls.dim; j++) + // https://issues.dlang.org/show_bug.cgi?id=19942 + // If the module that's being imported doesn't exist, don't add it to the symbol table + // for the current scope. + if (s->mod != NULL) { - sc->insert(s->aliasdecls[j]); + Module::addDeferredSemantic2(s); // Bugzilla 14666 + sc->insert(s); + + for (size_t j = 0; j < s->aliasdecls.dim; j++) + { + sc->insert(s->aliasdecls[j]); + } } } result = imps; diff --git a/gcc/testsuite/gdc.test/compilable/traits.d b/gcc/testsuite/gdc.test/compilable/traits.d new file mode 100644 index 00000000000..736eae4a89d --- /dev/null +++ b/gcc/testsuite/gdc.test/compilable/traits.d @@ -0,0 +1,10 @@ +// REQUIRED_ARGS: + +// This file is intended to contain all compilable traits-related tests in an +// effort to keep the number of files in the `compilable` folder to a minimum. + +/******************************************/ +// https://issues.dlang.org/show_bug.cgi?id=19942 + +static assert(!__traits(compiles, { a.init; })); +static assert(!__traits(compiles, { import m : a; a.init; }));