This is the mail archive of the
mailing list for the GCC project.
Re: gcc 3.3 / i386 / -O2 question
- From: Luca Benini <lbenini at csr dot unibo dot it>
- To: Dave Korn <dk at artimi dot com>
- Cc: 'Gerald Pfeifer' <gerald at pfeifer dot com>,'Beschorner Daniel' <Daniel dot Beschorner at facton dot com>, gcc at gcc dot gnu dot org,gcc-help at gcc dot gnu dot org
- Date: Wed, 17 Nov 2004 12:13:59 +0100
- Subject: Re: gcc 3.3 / i386 / -O2 question
- References: <NUTMEG0wzGDCvPeSHvn00000800@NUTMEG.CAM.ARTIMI.COM>
Dave Korn wrote:
Excuse me for butting in, but I don't understand what makes anyone think this
code _ought_ to produce the same results at different -O levels[*]. The C
language spec is explicit that this is undefined behaviour.
As every software that do data-processing you need it will reproduce the
same behavior with any not-altering-semantic-option.
Well if you put garbage in you will obtain garbage out, but the problem
can raise if the garbage generation is not deterministic.
If the code is syntattical garbage ===> compiler don't compile it
if the code is semantical garbage ===> same compiler must generate the
same output (in .s or in .o) ==> you must obtain the same result.