summaryrefslogtreecommitdiff
path: root/gcc/d
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2020-03-17 19:33:14 +0100
committerIain Buclaw <ibuclaw@gdcproject.org>2020-03-19 18:34:52 +0100
commit37482edc3f7f19110da7178d0d4c3003ea5272f3 (patch)
tree4315c56858f31991be0342d1964b064eecdddd80 /gcc/d
parentf22712bd8a2ed57d3cc7e6fa92730bd5852e27b3 (diff)
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')
-rw-r--r--gcc/d/dmd/MERGE2
-rw-r--r--gcc/d/dmd/dclass.c1
-rw-r--r--gcc/d/dmd/expressionsem.c1
-rw-r--r--gcc/d/dmd/module.h1
4 files changed, 3 insertions, 2 deletions
diff --git a/gcc/d/dmd/MERGE b/gcc/d/dmd/MERGE
index 6cbc4e37819..a421448a287 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 bbe2f8a9d72..4609d6a9f54 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 781bd3ea5fd..fed36cf9242 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 4a20356db89..f4253d32657 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