[Issue 2423] New: Erroneous unreachable statement warning
Lars Ivar Igesund
larsivar at igesund.net
Mon Oct 20 01:17:46 PDT 2008
Don wrote:
> d-bugmail at puremagic.com wrote:
>> http://d.puremagic.com/issues/show_bug.cgi?id=2423
>>
>> Summary: Erroneous unreachable statement warning
>> Product: D
>> Version: 1.035
>> Platform: Other
>> OS/Version: All
>> Status: NEW
>> Keywords: diagnostic
>> Severity: regression
>> Priority: P2
>> Component: DMD
>> AssignedTo: bugzilla at digitalmars.com
>> ReportedBy: larsivar at igesund.net
>>
>>
>> Consider the following function:
>>
>> void foo() {
>>
>> do {
>> if (false)
>> return 1;
>> } while (true);
>> }
>>
>> Compiling with -w, results in
>>
>> warning - whiletrue.d(6): Error: statement is not reachable
>>
>> Minimized from a module in Tango, meaning Tango does not compile with
>> warnings on.
>>
>> This regression was introduced in DMD 1.032.
>>
>>
> Why is that wrong? "return 1" looks unreachable to me.
It is
while(true)
that is line 6 (you can move the while a few lines down to see that it isn't
just a line number error). The return makes the statement on that line
("true" I assume) unreachable, which is correct without the conditional. So
it is the presence of the if (false) that makes this an error.
--
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
More information about the Digitalmars-d-bugs
mailing list