[Issue 3469] ICE(func.c): Regression. Calling non-template function as a template, from another module
https://issues.dlang.org/show_bug.cgi?id=3469 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Version|1.050 |D1 --
[Issue 3469] ICE(func.c): Regression. Calling non-template function as a template, from another module
http://d.puremagic.com/issues/show_bug.cgi?id=3469 Walter Bright bugzi...@digitalmars.com changed: What|Removed |Added Status|NEW |RESOLVED CC||bugzi...@digitalmars.com Resolution||FIXED --- Comment #3 from Walter Bright bugzi...@digitalmars.com 2009-12-06 00:46:48 PST --- Fixed dmd 1.053 and 2.037 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3469] ICE(func.c): Regression. Calling non-template function as a template, from another module
http://d.puremagic.com/issues/show_bug.cgi?id=3469 Don clugd...@yahoo.com.au changed: What|Removed |Added Version|2.035 |1.050 Summary|ICE in func.c |ICE(func.c): Regression. ||Calling non-template ||function as a template, ||from another module OS/Version|Linux |All Severity|normal |regression --- Comment #1 from Don clugd...@yahoo.com.au 2009-11-03 01:05:18 PST --- Reduced test case. --- test.d import test2; void b(){ test2.call!(); } --- test2.d --- void call(){ } --- assert func.c(133) semanticRun = 1 This is a regression: it worked on DMD 2.026, but failed on 2.030 and later. Fails on the current D1, as well. When doing a DotIdExpTemplate call, it doesn't check that thing it's calling is actually a template. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3469] ICE(func.c): Regression. Calling non-template function as a template, from another module
http://d.puremagic.com/issues/show_bug.cgi?id=3469 Don clugd...@yahoo.com.au changed: What|Removed |Added Keywords||patch --- Comment #2 from Don clugd...@yahoo.com.au 2009-11-03 03:45:48 PST --- PATCH against DMD2.036. Passes the DMD test suite + phobos unittests. Expression.c, DotTemplateInstanceExp::semantic(). Ensure it's a template BEFORE running the semantic pass. Index: expression.c === --- expression.c(revision 234) +++ expression.c(working copy) @@ -6082,6 +6082,14 @@ goto Lerr; } s = s2; + +td = s-toAlias()-isTemplateDeclaration(); +if (!td) +{ +error(%s is not a template, id-toChars()); +goto Lerr; +} + s-semantic(sc); s = s-toAlias(); td = s-isTemplateDeclaration(); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---