diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-03-17 19:33:14 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2020-03-19 18:34:52 +0100 |
commit | 37482edc3f7f19110da7178d0d4c3003ea5272f3 (patch) | |
tree | 4315c56858f31991be0342d1964b064eecdddd80 /gcc/d/dmd | |
parent | f22712bd8a2ed57d3cc7e6fa92730bd5852e27b3 (diff) | |
download | gcc-37482edc3f7f19110da7178d0d4c3003ea5272f3.zip gcc-37482edc3f7f19110da7178d0d4c3003ea5272f3.tar.gz gcc-37482edc3f7f19110da7178d0d4c3003ea5272f3.tar.bz2 |
d/dmd: Merge upstream dmd d1a606599
Fixes long standing regression in the D front-end implemention, and adds
a new field to allow retrieving a list of all content imports from the
code generator.
Reviewed-on: https://github.com/dlang/dmd/pull/10913
https://github.com/dlang/dmd/pull/10933
Diffstat (limited to 'gcc/d/dmd')
-rw-r--r-- | gcc/d/dmd/MERGE | 2 | ||||
-rw-r--r-- | gcc/d/dmd/dclass.c | 1 | ||||
-rw-r--r-- | gcc/d/dmd/expressionsem.c | 1 | ||||
-rw-r--r-- | gcc/d/dmd/module.h | 1 |
4 files changed, 3 insertions, 2 deletions
diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE index 6cbc4e3..a421448 100644 --- a/gcc/d/dmd/MERGE +++ b/gcc/d/dmd/MERGE @@ -1,4 +1,4 @@ -b061bd744cb4eb94a7118581387d988d4ec25e97 +d1a606599e7c2bea8fda8bf5e3ddceb486ae69ac 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/dclass.c b/gcc/d/dmd/dclass.c index bbe2f8a..4609d6a 100644 --- a/gcc/d/dmd/dclass.c +++ b/gcc/d/dmd/dclass.c @@ -395,7 +395,6 @@ void ClassDeclaration::semantic(Scope *sc) } else if (symtab && !scx) { - semanticRun = PASSsemanticdone; return; } semanticRun = PASSsemantic; diff --git a/gcc/d/dmd/expressionsem.c b/gcc/d/dmd/expressionsem.c index 781bd3e..fed36cf 100644 --- a/gcc/d/dmd/expressionsem.c +++ b/gcc/d/dmd/expressionsem.c @@ -2370,6 +2370,7 @@ public: return setError(); } + sc->_module->contentImportedFiles.push(name); if (global.params.verbose) message("file %.*s\t(%s)", (int)se->len, (char *)se->string, name); if (global.params.moduleDeps != NULL) diff --git a/gcc/d/dmd/module.h b/gcc/d/dmd/module.h index 4a20356..f4253d3 100644 --- a/gcc/d/dmd/module.h +++ b/gcc/d/dmd/module.h @@ -76,6 +76,7 @@ public: unsigned numlines; // number of lines in source file int isDocFile; // if it is a documentation input file, not D source bool isPackageFile; // if it is a package.d + Strings contentImportedFiles; // array of files whose content was imported int needmoduleinfo; int selfimports; // 0: don't know, 1: does not, 2: does |