digitalmars.D.bugs - [Issue 2140] New: static if as final statement with no code causes containing code to be skipped
- d-bugmail puremagic.com (48/48) Jun 03 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2140
- d-bugmail puremagic.com (5/5) Jun 03 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2140
- d-bugmail puremagic.com (10/10) Jun 04 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2140
- d-bugmail puremagic.com (9/9) Jun 22 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2140
http://d.puremagic.com/issues/show_bug.cgi?id=2140 Summary: static if as final statement with no code causes containing code to be skipped Product: D Version: 1.027 Platform: PC OS/Version: Windows Status: NEW Keywords: wrong-code Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: jarrett.billingsley gmail.com Hard to describe. --------------------- void foo() { Stdout.formatln("I'm transient."); static if(true) { // Comment me. Stdout.formatln("true."); } else { } } void main(char[][] args) { foo(); } --------------------- This code prints I'm transient. true. As expected. Comment the "comment me" line, however, and the "I'm transient" is never printed. Alternatively, change the "static if(true)" to "static if(false)" and the same thing happens since the 'else' is empty. Ways to make it go away: - Have at least one statement in the static if clause that is selected. Even a no-op statement such as "int x = void;". - Have more than one statement before the static if. - Have at least one statement after the static if. I'm really kind of flabbergasted. --
Jun 03 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2140 Happens in both 1.027 and 1.030 --
Jun 03 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2140 torhu yahoo.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |torhu yahoo.com Adding an extra statement like 'int x;' at the top of foo() also fixes it. This bug is strikingly similiar to issue 1559. In fact, it behaves exactly the same, except it's 'static if' instead of 'version'. --
Jun 04 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2140 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED Fixed dmd 1.031 and 2.015 --
Jun 22 2008