[Issue 11114] Undefined symbols after merging dmd pull #2550

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Sep 25 07:40:16 PDT 2013


http://d.puremagic.com/issues/show_bug.cgi?id=11114



--- Comment #5 from Kenji Hara <k.hara.pg at gmail.com> 2013-09-25 07:40:15 PDT ---
(In reply to comment #4)
> So I'd say Issue 11069 isn't fully fixed.

OK, I checked compiler code on desk, and found two suspicious code places.

Could you test this patch on git head (da3d2e6)?

 src/template.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/template.c b/src/template.c
index b7c58ca..a4f67f3 100644
--- a/src/template.c
+++ b/src/template.c
@@ -1122,10 +1122,8 @@ MATCH
TemplateDeclaration::deduceFunctionTemplateMatch(FuncDeclaration *f, Loc l
     paramsym->parent = scope->parent;
     Scope *paramscope = scope->push(paramsym);

-    paramscope->instantiatingModule = sc->instantiatingModule;
     Module *mi = sc->instantiatingModule ? sc->instantiatingModule :
sc->module;
-    if (!sc->instantiatingModule || sc->instantiatingModule->isRoot())
-        paramscope->instantiatingModule = mi;
+    paramscope->instantiatingModule = mi;

     paramscope->callsc = sc;
     paramscope->stc = 0;
@@ -2640,7 +2638,8 @@ FuncDeclaration
*TemplateDeclaration::doHeaderInstantiation(Scope *sc,
     ti->argsym = new ScopeDsymbol();
     ti->argsym->parent = scope->parent;
     scope = scope->push(ti->argsym);
-    scope->instantiatingModule = sc->instantiatingModule;
+    Module *mi = sc->instantiatingModule ? sc->instantiatingModule :
sc->module;
+    scope->instantiatingModule = mi;

     bool hasttp = false;

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list