This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: basic VRP min/max range overflow question
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Paul Schlie <schlie at comcast dot net>
- Cc: Dale Johannesen <dalej at apple dot com>, Robert Dewar <dewar at adacore dot com>, Mike Stump <mrs at apple dot com>, Andrew Pinski <pinskia at physics dot uc dot edu>, GCC Development <gcc at gcc dot gnu dot org>
- Date: Sat, 18 Jun 2005 18:21:02 +0000 (UTC)
- Subject: Re: basic VRP min/max range overflow question
- References: <BED9DA92.A893%schlie@comcast.net>
On Sat, 18 Jun 2005, Paul Schlie wrote:
> [#1] Behavior, upon use of a nonportable or erroneous
> program construct, of erroneous data, or of indeterminately
> valued objects, for which this International Standard
> imposes no requirements. Permissible undefined behavior
> ranges from ignoring the situation completely with
> unpredictable results, to behaving during translation or
> program execution in a documented manner characteristic of
> the environment (with or without the issuance of a
> diagnostic message), to terminating a translation or
> execution (with the issuance of a diagnostic message).
You appear to have chosen to misquote again. In this case, you've taken
the C90 version of the wording but with a paragraph number from C99 (C90
did not have paragraph numbers). Perhaps you cannot grasp the generality
of "no requirements"? A few examples are given, but "no requirements"
means that the program can behave completely inconsistently if it involves
undefined behavior.
> [#3] The implementation must successfully translate a given
> program unless a syntax error is detected, a constraint is
> violated, or it can determine that every possible execution
> of that program would result in undefined behavior.
This looks like a completely fabricated quote to me. If it comes from
C99, state the subclause and paragraph numbers (in C99 as amended by TC1
and TC2). It certainly doesn't seem to be in the plain text version of
C99+TC1. In general, state where you are quoting rather than just
claiming particular text you've just written is relevant.
> Which again is specific to that which is defined, as it requires the
> successful (and presumably conformant) translation of the program unless
> the implementation can prove the whole program is itself would have an
> undefined behavior (reinforcing the notion that the language's semantics
> remain in force even in the presence of a expression with undefined
> semantics).
"no requirements" means that *any* translation conforms in the case of
undefined behavior. Only those executions not involving undefined
behavior have any requirements.
--
Joseph S. Myers http://www.srcf.ucam.org/~jsm28/gcc/
jsm@polyomino.org.uk (personal mail)
joseph@codesourcery.com (CodeSourcery mail)
jsm28@gcc.gnu.org (Bugzilla assignments and CCs)