digitalmars.D.bugs - [Issue 4864] New: ICE(statement.c) Crash on invalid 'if statement' body inside mixin
- d-bugmail puremagic.com (26/26) Sep 14 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
- d-bugmail puremagic.com (12/12) Sep 15 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
- d-bugmail puremagic.com (20/20) Nov 17 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
- d-bugmail puremagic.com (10/10) Dec 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
- d-bugmail puremagic.com (6/6) Dec 04 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
- d-bugmail puremagic.com (9/9) Dec 08 2010 http://d.puremagic.com/issues/show_bug.cgi?id=4864
http://d.puremagic.com/issues/show_bug.cgi?id=4864
Summary: ICE(statement.c) Crash on invalid 'if statement' body
inside mixin
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: ice-on-invalid-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: yebblies gmail.com
----- reduced test case -----
void main()
{
mixin("if (0) % ;");
}
-----------------------------
IfStatement::semantic is called with (ifbody == null)
Seems like something that should be detected during parsing of the mixin.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 14 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4864
Additional test case:
void main()
{
mixin("if (a b) ;");
}
Another case of a broken if statement.
The crash goes away if a body is added to the if statement.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Sep 15 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4864
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch
CC| |clugdbug yahoo.com.au
PATCH: statement.c 337.
CompileStatement::flatten()
Statements *a = new Statements();
while (p.token.value != TOKeof)
{
+ int olderrs = global.errors;
Statement *s = p.parseStatement(PSsemi | PScurlyscope);
+ if (olderrs == global.errors) // discard it if parsing failed
a->push(s);
}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 17 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4864
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
22:57:08 PST ---
http://www.dsource.org/projects/dmd/changeset/778
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4864 22:57:26 PST --- http://www.dsource.org/projects/dmd/changeset/778 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Dec 04 2010
http://d.puremagic.com/issues/show_bug.cgi?id=4864
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 08 2010









d-bugmail puremagic.com 