From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15571 invoked by alias); 20 Jun 2005 02:44:48 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 15503 invoked by uid 22791); 20 Jun 2005 02:44:42 -0000 Received: from morbo.e-centre.net (HELO cubert.e-centre.net) (66.154.82.3) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Mon, 20 Jun 2005 02:44:42 +0000 Received: from [10.3.1.19] (helo=guestrelay.stayonline.net) by cubert.e-centre.net with esmtp (Exim 4.50) id 1DkCGw-0000IH-TD; Sun, 19 Jun 2005 22:44:26 -0400 Received: from [127.0.0.1] (unknown [12.43.112.130]) by guestrelay.stayonline.net (Spam Firewall) with ESMTP id E11F12003841; Sun, 19 Jun 2005 22:44:24 -0400 (EDT) Message-ID: <42B62D7C.7070807@adacore.com> Date: Mon, 20 Jun 2005 02:44:00 -0000 From: Robert Dewar User-Agent: Mozilla Thunderbird 0.8 (Windows/20040913) MIME-Version: 1.0 To: Paul Schlie CC: "Joseph S. Myers" , Dale Johannesen , Mike Stump , Andrew Pinski , GCC Development Subject: Re: basic VRP min/max range overflow question References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2005-06/txt/msg00858.txt.bz2 Paul Schlie wrote: > The root of the concern being expressed is with respect to the compilers use > of statically identified undefined behaviors as opportunities to invoke > alternative semantics which are easily identified as being inconsistent with > the target's native semantics, thus altering the logical behavior of the > program than would otherwise have resulted. (without any halting solutions > required) You are still not understanding, these are NOT cases of "statically identified undefined behavior". Those are the trivial cases that are uninterestig. > > As candidly, regardless of this being technically allowed, it should obvious > that any optimization which may likely alter the behavior of a program > should never be invoked without explicit request and ideally diagnosis of > the resulting alternative possibly undesired and/or fatal behavior. If the behavior is undefined, then it is undefined, and you cannot talk about a change in behavior. This is what non-deterministic semantics is about. > > To be more clear, specifically as examples: > > - As VRP relies on the static analysis of value ranges, primarily based > on embedded implicit and/or explicit constant values which enables the It most certainly is NOT possible to statically identify situations that cause overflow. I cannot believe this is not clear to you.