From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29870 invoked by alias); 7 Feb 2006 00:42:49 -0000 Received: (qmail 29847 invoked by alias); 7 Feb 2006 00:42:46 -0000 Date: Tue, 07 Feb 2006 00:42:00 -0000 Subject: [Bug tree-optimization/26144] New: with -O3 and pointer casts, gcc skips if X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "gcc-bugzilla at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2006-02/txt/msg00592.txt.bz2 List-Id: When casting a pointer and checking for == NULL, the check is skipped when -O3 is enabled. I found this problem while compiling bind with uClibc, but could reproduce the problem with the debian version of gcc and this simple test file. Environment: System: Linux dungeon2 2.6.11-1-k7-smp #1 SMP Mon Jun 20 22:34:51 MDT 2005 i686 GNU/Linux Architecture: i686 host: i486-pc-linux-gnu build: i486-pc-linux-gnu target: i486-pc-linux-gnu configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=i686 --enable-checking=release i486-linux-gnu How-To-Repeat: Compile this file: #include void foo(char **dee) { *dee = ""; } int main(int argc, char *argv[]) { struct blah *ptr = argv[1]; if(ptr == NULL) foo(&ptr); printf("%p", ptr); // output: (nil) expected: 0xADDRESS return 0; } -- Summary: with -O3 and pointer casts, gcc skips if Product: gcc Version: 4.0.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: devin at dungeon2 dot cainetworks dot com GCC build triplet: i486-pc-linux-gnu GCC host triplet: i486-pc-linux-gnu GCC target triplet: i486-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26144