Bug 2463 – No line number in "statement is not reachable" warning

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P3
Component
dmd
Product
D
Version
D1 (retired)
Platform
x86
OS
Windows
Creation time
2008-11-19T18:00:00Z
Last change time
2014-03-01T00:36:30Z
Keywords
diagnostic, patch
Assigned to
nobody
Creator
vlasov
Blocks
2235

Comments

Comment #0 by vlasov — 2008-11-19T18:00:18Z
dmd test.d -w warning - Error: statement is not reachable === test.d === void foo() { assert(0); return 0; }
Comment #1 by smjg — 2008-11-19T18:41:13Z
Please remember to assign keywords to bug reports. To everybody reading this: Please look through issues you've reported and check for missing keywords. This error is also an instance of issue 952.
Comment #2 by witold.baryluk+d — 2009-11-24T16:27:27Z
It also hapens in more complicated situations. Out of curriosity I added -w to my project, and found few this "warning - Error: statment is not reachble" statments, and compilation failed. I have no idea where the problem is exactly, because this is big projects, with many templates. What is interesting for some of this warning i have lines numbers like: warning - corod.d(389): Error: statement is not reachable but for most: warning - Error: statement is not reachable And i can't find good rule when I have line number and when i don't. Small example: $ dmd2 -w A.d warning - Error: statement is not reachable === A.d ==== class A { void f() { while (true) {} return 0; } }
Comment #3 by witold.baryluk+d — 2009-11-24T16:27:59Z
I forgot to add in my last Comment, that I'm using DMD 2.032
Comment #4 by clugdbug — 2010-02-01T00:02:27Z
This is because statement.c, line 3515, at the end of ReturnStatement::semantic() sets loc to zero. //---- if (exp && tbret->ty == Tvoid && !implicit0) { /* Replace: * return exp; * with: * exp; return; */ Statement *s = new ExpStatement(loc, exp); exp = NULL; s = s->semantic(sc); - loc = 0; return new CompoundStatement(loc, s, this); } return this; }
Comment #5 by bugzilla — 2010-02-04T02:24:31Z
changeset 364
Comment #6 by bugzilla — 2010-03-08T22:18:31Z
Fixed dmd 1.057 and 2.041