Thread overview
[Issue 2463] New: No line number in "statement is not reachable" warning
Nov 20, 2008
d-bugmail
Nov 20, 2008
d-bugmail
Nov 25, 2009
Witold Baryluk
Nov 25, 2009
Witold Baryluk
Jan 28, 2010
Don
Feb 01, 2010
Don
Feb 04, 2010
Walter Bright
Mar 09, 2010
Walter Bright
November 20, 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2463

           Summary: No line number in "statement is not reachable" warning
           Product: D
           Version: 1.036
          Platform: PC
        OS/Version: Windows
            Status: NEW
          Severity: minor
          Priority: P3
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: vlasov@scatt.com


dmd test.d -w
warning - Error: statement is not reachable

=== test.d ===
void foo()
{
        assert(0);
        return 0;
}


-- 

November 20, 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2463


smjg@iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |smjg@iname.com
           Keywords|                            |diagnostic




------- Comment #1 from smjg@iname.com  2008-11-19 18:41 -------
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.


-- 

November 25, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2463


Witold Baryluk <baryluk@smp.if.uj.edu.pl> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |baryluk@smp.if.uj.edu.pl


--- Comment #2 from Witold Baryluk <baryluk@smp.if.uj.edu.pl> 2009-11-24 16:27:27 PST ---
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;
    }
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
November 25, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=2463



--- Comment #3 from Witold Baryluk <baryluk@smp.if.uj.edu.pl> 2009-11-24 16:27:59 PST ---
I forgot to add in my last Comment, that I'm using DMD 2.032

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 28, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2463


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug@yahoo.com.au
           Severity|minor                       |normal


-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 01, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2463


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


--- Comment #4 from Don <clugdbug@yahoo.com.au> 2010-02-01 00:02:27 PST ---
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;
}

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
February 04, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2463


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #5 from Walter Bright <bugzilla@digitalmars.com> 2010-02-04 02:24:31 PST ---
changeset 364

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
March 09, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=2463


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


--- Comment #6 from Walter Bright <bugzilla@digitalmars.com> 2010-03-08 22:18:31 PST ---
Fixed dmd 1.057 and 2.041

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------