--- Comment #3 from Don <> 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); 

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:
------- You are receiving this mail because: -------

Reply via email to