This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Storage for uninitialized objects (PR 24626)
- From: Gabriel Dos Reis <gdr at cs dot tamu dot edu>
- To: Ian Lance Taylor <ian at airs dot com>
- Cc: Paul Schlie <schlie at comcast dot net>, John David Anglin <dave at hiauly1 dot hia dot nrc dot ca>, <gcc at gcc dot gnu dot org>
- Date: 15 Jan 2006 07:47:11 -0600
- Subject: Re: Storage for uninitialized objects (PR 24626)
- References: <BFEF7F1F.CABE%schlie@comcast.net> <m3irslojz7.fsf@gossamer.airs.com>
Ian Lance Taylor <ian@airs.com> writes:
| Paul Schlie <schlie@comcast.net> writes:
|
| > As a simple example, although x may be indeterminate -1 < sin(x) < +1
| > is unconditionally true, as must be tan(x) = sin(x)/cos(x), and x^x = 0;
|
| No, the ISO C standard is clear that an uninitialized variable may be
| set to a trap representation (6.7.8, 3.17.2). So in this case x might
| be a signalling NaN, and executing sin (x) might well terminate the
| program with a floating point exception. That would be a valid
| translation of the program by the compiler, and would even be
| reasonable and appropriate in a non-optimized compilation.
what if x is declared as
unsigned char x;
?
-- Gaby