Thread overview | |||||||
---|---|---|---|---|---|---|---|
|
March 01, 2011 [Issue 5676] New: Evaluating nested std.typecons.tuple calls at compile time crashes DMD | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=5676 Summary: Evaluating nested std.typecons.tuple calls at compile time crashes DMD Product: D Version: D2 Platform: Other OS/Version: Mac OS X Status: NEW Severity: major Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: code@klickverbot.at --- Comment #0 from klickverbot <code@klickverbot.at> 2011-03-01 10:50:58 PST --- Trying to compile the following program crashes DMD (from current Git, a47637): --- import std.typecons; enum foo = tuple("foo", tuple("bar")); --- The backtrace from GDB: --- Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x00000011 0x00087246 in expandTuples () (gdb) bt #0 0x00087246 in expandTuples () #1 0x0012c6a9 in TupleExp::interpret () #2 0x0012963d in ExpStatement::interpret () #3 0x00129696 in CompoundStatement::interpret () #4 0x00129696 in CompoundStatement::interpret () #5 0x0012f44a in FuncDeclaration::interpret () #6 0x0012fb73 in CallExp::interpret () #7 0x000dfcc7 in CallExp::optimize () #8 0x000b7c28 in ExpInitializer::semantic () #9 0x000574b1 in VarDeclaration::semantic2 () #10 0x000c6912 in Module::semantic2 () #11 0x000c4388 in main () --- The above backtrace seems to indicate a bug in CTFE. Indeed, if the value isn't computed at compile time, everything works fine: --- import std.stdio; import std.typecons; void main() { auto foo = tuple("foo", tuple("bar")); writeln(foo); // prints Tuple!(string,Tuple!(string))(foo, Tuple!(string)(bar)). } --- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 24, 2011 [Issue 5676] [CTFE] segfault using tuple containing struct that has opAssign | ||||
---|---|---|---|---|
| ||||
Posted in reply to klickverbot | http://d.puremagic.com/issues/show_bug.cgi?id=5676 Don <clugdbug@yahoo.com.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |clugdbug@yahoo.com.au Summary|Evaluating nested |[CTFE] segfault using tuple |std.typecons.tuple calls at |containing struct that has |compile time crashes DMD |opAssign OS/Version|Mac OS X |All --- Comment #1 from Don <clugdbug@yahoo.com.au> 2011-06-24 01:56:04 PDT --- Reduced test case. It happens with compile time assignment to a tuple which contains an object with an opAssign. Not a regression, failed in 2.040 as well. struct S5676 { int x; void opAssign(S5676 rhs) { x = rhs.x;} } struct Tup5676(E...) { E g; void foo(E values) { g = values; } } bool ice5676() { Tup5676!(S5676) q; q.foo( S5676(3) ); assert( q.g[0].x == 3); // crashes here return true; } static assert(ice5676()); -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
June 27, 2011 [Issue 5676] [CTFE] segfault using tuple containing struct that has opAssign | ||||
---|---|---|---|---|
| ||||
Posted in reply to klickverbot | http://d.puremagic.com/issues/show_bug.cgi?id=5676 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> 2011-06-26 17:30:59 PDT --- https://github.com/D-Programming-Language/dmd/commit/766ff55baceec3a8d00d23ece02ff4aadc6b9209 -- 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