Thread overview | |||||
---|---|---|---|---|---|
|
May 26, 2010 [Issue 4238] New: Segfault(statement.c): with(typeof(int)) | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=4238 Summary: Segfault(statement.c): with(typeof(int)) Product: D Version: 1.020 Platform: Other OS/Version: Windows Status: NEW Keywords: ice-on-invalid-code, patch Severity: normal Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: clugdbug@yahoo.com.au --- Comment #0 from Don <clugdbug@yahoo.com.au> 2010-05-26 13:03:03 PDT --- TEST CASE: ----- void bug4237() { int s; with(typeof(s)) {} } ---- PATCH (D2 svn 502): // WithStatement::semantic. line 3639: segfaults because toDsymbol(sc) // returns null. { TypeExp *es = (TypeExp *)exp; - sym = es->type->toDsymbol(sc)->isScopeDsymbol(); + Dsymbol *dsym = es->type->toDsymbol(sc); + sym = dsym ? dsym->isScopeDsymbol() : NULL; if (!sym) { error("%s has no members", es->toChars()); body = body->semantic(sc); return this; } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
May 26, 2010 [Issue 4238] Segfault(statement.c): with(typeof(int)) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don | http://d.puremagic.com/issues/show_bug.cgi?id=4238 --- Comment #1 from Don <clugdbug@yahoo.com.au> 2010-05-26 13:20:16 PDT --- Darn it, waited to long before hitting submit, and another bug snuck in before this one -- test case should be changed to bug4238(). <g>. Anyway, if you add one line to the patch, it fixes bug 1413. I was actually trying to generate a case where 1413 matters, but failed. But I found this case instead. PATCH (D2 svn 502): // WithStatement::semantic. line 3639: segfaults because toDsymbol(sc) // returns null. { TypeExp *es = (TypeExp *)exp; - sym = es->type->toDsymbol(sc)->isScopeDsymbol(); + Dsymbol *dsym = es->type->toDsymbol(sc); + sym = dsym ? dsym->isScopeDsymbol() : NULL; if (!sym) { error("%s has no members", es->toChars()); + if (body) body = body->semantic(sc); return this; } } -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 28, 2010 [Issue 4238] Segfault(statement.c): with(typeof(int)) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Don | http://d.puremagic.com/issues/show_bug.cgi?id=4238 Walter Bright <bugzilla@digitalmars.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |bugzilla@digitalmars.com Resolution| |FIXED --- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2010-06-28 11:59:09 PDT --- http://www.dsource.org/projects/dmd/changeset/566 -- 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