[Issue 3344] ICE(e2ir.c) returning an invalid function from main()
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Sep 29 01:24:56 PDT 2009
http://d.puremagic.com/issues/show_bug.cgi?id=3344
--- Comment #3 from Don <clugdbug at yahoo.com.au> 2009-09-29 01:24:55 PDT ---
This is happening because when return exp; is changed into exp; return;, the
semantic pass never gets run on the expression.
-------
PATCH: iin statement.c, around line 3464, in Statement
*ReturnStatement::semantic(Scope *sc)
=====
/* Replace:
* return exp;
* with:
* exp; return;
*/
Statement *s = new ExpStatement(loc, exp);
+ s->semantic(sc);
==========
CAUTION:
This patch also disallows code like " void foo() { return 7; }"
This shows up several bugs in Phobos and in the DMD test suite.
If there's a reason why such bug-prone code should continue to be accepted, a
more complicated patch will be required.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list