Thread overview | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
October 14, 2009 [Issue 3401] New: Compiler crash on invariant + method overload | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=3401 Summary: Compiler crash on invariant + method overload Product: D Version: 1.048 Platform: Other OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: moritzwarning@web.de --- Comment #0 from Moritz Warning <moritzwarning@web.de> 2009-10-14 08:55:43 PDT --- dmd 1.049 and svn r102 crash on this code. class A { invariant { // assert (true); } void fill () { } } class B : A { void fill () { } } Program received signal SIGSEGV, Segmentation fault. VarExp (this=0x96f20c0, loc={filename = 0x96daa88 "tango.io.Buffer.d", linnum = 20}, var=0x0) at expression.c:3914 3914 this->type = var->type; Current language: auto; currently c++ (gdb) bt #0 VarExp (this=0x96f20c0, loc={filename = 0x96daa88 "tango.io.Buffer.d", linnum = 20}, var=0x0) at expression.c:3914 #1 0x080c3765 in FuncDeclaration::mergeFensure (this=0x96db4b0, sf=0x0) at func.c:1575 #2 0x080c4089 in FuncDeclaration::semantic3 (this=0x96db4b0, sc=0x96f14f8) at func.c:742 #3 0x0811948d in AggregateDeclaration::semantic3 (this=0x96db2e8, sc=0x96f14f8) at struct.c:88 #4 0x080eac3d in Module::semantic3 (this=0x96da980) at module.c:804 #5 0x080e8cf3 in main (argc=Cannot access memory at address 0x0 ) at mars.c:1115 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 14, 2009 [Issue 3401] Compiler crash on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 --- Comment #1 from Moritz Warning <moritzwarning@web.de> 2009-10-14 08:56:46 PDT --- The backtrace is for dmd svn r102. This ticket may also need a better title. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2009 [Issue 3401] Compiler crash on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ice-on-valid-code CC| |clugdbug@yahoo.com.au OS/Version|Linux |All Severity|normal |regression -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2009 [Issue 3401] Segfault(expression.c) on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Compiler crash on invariant |Segfault(expression.c) on |+ method overload |invariant + method overload --- Comment #2 from Don <clugdbug@yahoo.com.au> 2009-10-15 01:57:40 PDT --- Crashing in VarExp::VarExp(). var is NULL. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2009 [Issue 3401] Segfault(expression.c) on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch --- Comment #3 from Don <clugdbug@yahoo.com.au> 2009-10-15 02:07:03 PDT --- func.c, line 1568 (DMD 1.050), in mergeFensure(): Need to check fdensure as well as fensure. FuncDeclaration *fdv = (FuncDeclaration *)foverrides.data[i]; sf = fdv->mergeFensure(sf); - if (fdv->fensure) + if (fdv->fensure && fdv->fdensure) { //printf("fdv->fensure: %s\n", fdv->fensure->toChars()); // Make the call: __ensure(result) Expression *eresult = NULL; Likewise in mergeFrequire, line 1524 should probably be: FuncDeclaration *fdv = (FuncDeclaration *)foverrides.data[i]; sf = fdv->mergeFrequire(sf); - if (fdv->frequire) + if (fdv->frequire && fdv->fdrequire) { //printf("fdv->frequire: %s\n", fdv->frequire->toChars()); /* Make the call: * try { __require(); } * catch { frequire; } */ Expression *eresult = NULL; Expression *e = new CallExp(loc, new VarExp(loc, fdv->fdrequire), eresult); Statement *s2 = new ExpStatement(loc, e); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2009 [Issue 3401] Segfault(expression.c) on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 --- Comment #4 from Moritz Warning <moritzwarning@web.de> 2009-10-15 13:02:23 PDT --- The test case compiles and runs with dmd svn r215. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 15, 2009 [Issue 3401] Segfault(expression.c) on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 Moritz Warning <moritzwarning@web.de> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mk@krej.cz --- Comment #5 from Moritz Warning <moritzwarning@web.de> 2009-10-15 14:03:32 PDT --- *** Issue 3405 has been marked as a duplicate of this issue. *** -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
November 06, 2009 [Issue 3401] Segfault(expression.c) on invariant + method overload | ||||
---|---|---|---|---|
| ||||
Posted in reply to Moritz Warning | http://d.puremagic.com/issues/show_bug.cgi?id=3401 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution| |FIXED --- Comment #6 from Walter Bright <bugzilla@digitalmars.com> 2009-11-06 11:30:59 PST --- Fixed dmd 1.051 and 2.036 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation