http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46582

           Summary: No warning is given about always false condition and
                    unreachable code
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: d.g.gorbac...@gmail.com


GCC 4.5.x and 4.6.0 do not warn that ((x & 0xff) < 0) is always false and goo()
is never called:

======== bug.c =========
extern void goo(void);
extern int x;

int main(void)
{
    if ((x & 0xff) < 0)
        goo();
    return 0;
}
========================

GCC 4.4.x with `-Wunreachable-code' gives a warning:

bug.c: In function 'main':
bug.c:7: warning: will never be executed

No warnings with `-Wlogical-op'.

Reply via email to