From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9244 invoked by alias); 12 Dec 2010 22:23:45 -0000 Received: (qmail 9236 invoked by uid 22791); 12 Dec 2010 22:23:45 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 12 Dec 2010 22:23:42 +0000 From: "eskil at obsession dot se" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/46899] compiler optimization X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Keywords: X-Bugzilla-Severity: minor X-Bugzilla-Who: eskil at obsession dot se X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Sun, 12 Dec 2010 22:23:00 -0000 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: 2010-12/txt/msg01333.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46899 --- Comment #9 from Eskil Steenberg 2010-12-12 22:23:36 UTC --- Hi > No, it is possible because the value is undefined so both the if being > false and the printout happening can happen. But undefined still means that the variable c has a value, just not something that cant be determined at compile time. The value c is not undefined, just the operation that produces the value stored in c. Therefor anything the variable c touches shouldn't become undefined too. If i give someone the number 9 and tell them to do a square root of it, they should produce a 3 even if I dont define where I got the number 9. if they go ahead and produce the value 4, I'm going to say that they are wrong, and not buy the argument "Since you dont define where you got the number, I'm going to assume you really meent 16 and not 9". I really dislike the idea that something can be undefined, and at the same time the compiler can make assumptions about what it can be. pick one. Cheers E