[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