From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2490 invoked by alias); 18 Apr 2008 16:06:16 -0000 Received: (qmail 2320 invoked by uid 48); 18 Apr 2008 16:05:31 -0000 Date: Fri, 18 Apr 2008 16:06:00 -0000 Subject: [Bug c/35973] New: Incorrect warning: will never be executed X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "dot at dotat dot at" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-04/txt/msg01298.txt.bz2 This bug exists in various forms in multiple versions of gcc: $ cat gccbug.c struct sel { const char *name; unsigned int enabled; }; int selog_on(struct sel *); #define selog_on(sel) \ (sel.enabled == 0 \ ? selog_on(&sel) \ : sel.enabled != 42) void dostuff(int *); void gccbug1(void) { struct sel sel = { "test", 0 }; if(selog_on(sel)) { dostuff(0); } } void gccbug2(void) { struct sel sel = { "test", 0 }; if(selog_on(sel)) { int i; dostuff(&i); } } $ gcc -O -Wunreachable-code -c gccbug.c gccbug.c: In function `gccbug2': gccbug.c:25: warning: will never be executed $ gcc --version gcc --version gcc (GCC) 3.4.4 [FreeBSD] 20050518 $ gcc -O -Wunreachable-code -c gccbug.c gccbug.c: In function ‘gccbug2’: gccbug.c:24: warning: will never be executed gccbug.c: In function ‘gccbug1’: gccbug.c:17: warning: will never be executed $ gcc -O -Werror -Wunreachable-code -c gccbug.c cc1: warnings being treated as errors gccbug.c: In function ‘gccbug2’: gccbug.c:24: warning: will never be executed $ gcc --version gcc (GCC) 4.1.2 20070115 (prerelease) (SUSE Linux) $ gcc -O -Wunreachable-code -c gccbug.c gccbug.c: In function 'gccbug2': gccbug.c:24: warning: will never be executed gccbug.c: In function 'gccbug1': gccbug.c:17: warning: will never be executed $ gcc -O -Werror -Wunreachable-code -c gccbug.c cc1: warnings being treated as errors gccbug.c: In function 'gccbug2': gccbug.c:24: warning: will never be executed $ gcc --version gcc (GCC) 4.2.1 20070719 [FreeBSD] -- Summary: Incorrect warning: will never be executed Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dot at dotat dot at GCC host triplet: i386-undermydesk-freebsd GCC target triplet: i386-undermydesk-freebsd http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35973