[Issue 3737] SEG-V at expression.c:6255 from bad opDispatch
https://issues.dlang.org/show_bug.cgi?id=3737 Andrei Alexandrescu changed: What|Removed |Added Version|2.039 |D2 --
[Issue 3737] SEG-V at expression.c:6255 from bad opDispatch
http://d.puremagic.com/issues/show_bug.cgi?id=3737 Walter Bright changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #9 from Walter Bright 2010-03-08 22:22:36 PST --- Fixed dmd 1.057 and 2.041 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3737] SEG-V at expression.c:6255 from bad opDispatch
http://d.puremagic.com/issues/show_bug.cgi?id=3737 Kosmonaut changed: What|Removed |Added CC||kosmon...@tempinbox.com --- Comment #8 from Kosmonaut 2010-02-04 22:48:30 PST --- (In reply to comment #7) > changeset 367 http://www.dsource.org/projects/dmd/changeset/367 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3737] SEG-V at expression.c:6255 from bad opDispatch
http://d.puremagic.com/issues/show_bug.cgi?id=3737 Walter Bright changed: What|Removed |Added CC||bugzi...@digitalmars.com --- Comment #7 from Walter Bright 2010-02-04 21:10:21 PST --- changeset 367 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---
[Issue 3737] SEG-V at expression.c:6255 from bad opDispatch
http://d.puremagic.com/issues/show_bug.cgi?id=3737 Don changed: What|Removed |Added Keywords||patch Summary|SEG-V at expression.c:6255 |SEG-V at expression.c:6255 |from bad code |from bad opDispatch --- Comment #6 from Don 2010-01-26 00:06:30 PST --- Cause: If global.errors && !global.gag, TemplateInstance::semantic doesn't set 'inst'. So this is a possible patch (not recommended) inside template.c: { if (!global.gag) { /* Trying to soldier on rarely generates useful messages * at this point. */ fatal(); } +inst = this; // error recovery return; } === But, on the other hand, most other functions in expression.c only run ti->semantic() if there are global.errors. So this patch to expression.c line 6252 may be better: Expression *DotTemplateInstanceExp::semantic(Scope *sc) { #if LOGSEMANTIC printf("DotTemplateInstanceExp::semantic('%s')\n", toChars()); #endif Expression *eleft; Expression *e = new DotIdExp(loc, e1, ti->name); L1: e = e->semantic(sc); if (e->op == TOKdottd) { +if (global.errors) return new ErrorExp(); DotTemplateExp *dte = (DotTemplateExp *)e; TemplateDeclaration *td = dte->td; The same problem occurs in mtype.c, line 6613, 7101, inside ::dotExp(), for structs and classes, and they should probably have the same fix. (they shouldn't be running ti->semantic() if there are global errors). -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email --- You are receiving this mail because: ---