digitalmars.D.bugs - [Issue 3323] New: Segfault or ICE(e2ir.c) using struct with destructor almost anywhere
- d-bugmail puremagic.com (53/53) Sep 17 2009 http://d.puremagic.com/issues/show_bug.cgi?id=3323
- d-bugmail puremagic.com (12/12) May 30 2010 http://d.puremagic.com/issues/show_bug.cgi?id=3323
http://d.puremagic.com/issues/show_bug.cgi?id=3323
Summary: Segfault or ICE(e2ir.c) using struct with destructor
almost anywhere
Product: D
Version: 2.032
Platform: Other
OS/Version: All
Status: NEW
Keywords: ice-on-valid-code
Severity: critical
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: clugdbug yahoo.com.au
Depends on: 1894
This is similar to bug 1894, except that obviously it's D2 only and it ICEs
rather than generating bad code.
Segfaults in expression.c, CallExp::checkSideEffect(). All members seem to be
corrupt.
The only cases which work are compound statements, labels, foreach, and scope
guards.
If the destructor will never be called, it ICEs in e2ir instead.
This is a structural problem, I can't patch it.
Deterministic destruction is broken.
Here are 14 test cases. It's very easy to find more.
=====
struct A{
~this() { }
}
// Any of these lines cause a segfault
void segfault(){
if (1) A a;
//if(0) {} else A a;
//for(A a;;) {}
//for(;;) A a;
//do A a; while(0);
//while(1) A a;
//try A a; catch(Error e) {}
//switch(1) A a;
// final switch(0) A a;
//A a; with(a) A b;
}
// Any of these lines cause an ICE(e2ir.c)
void e2ir(){
// while(0) A a;
// if(0) A a;
// if(1){} else A a;
// for(;0;) A a;
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 17 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3323
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
11:04:51 PDT ---
http://www.dsource.org/projects/dmd/changeset/506
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 30 2010








d-bugmail puremagic.com