From -206761791424824623
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: 10f5bc,6f6e97a6fdbbf44c
X-Google-Attributes: gid10f5bc,public
X-Google-Thread: 109fba,6f6e97a6fdbbf44c
X-Google-Attributes: gid109fba,public
X-Google-Thread: 1014db,6f6e97a6fdbbf44c
X-Google-Attributes: gid1014db,public
X-Google-Thread: 102b75,6f6e97a6fdbbf44c
X-Google-Attributes: gid102b75,public
X-Google-Thread: 1149ec,6f6e97a6fdbbf44c
X-Google-Attributes: gid1149ec,public
X-Google-Thread: 110292,6f6e97a6fdbbf44c
X-Google-Attributes: gid110292,public
X-Google-Thread: f78e5,6f6e97a6fdbbf44c
X-Google-Attributes: gidf78e5,public
From: softbase@mercury.interpath.net (Scott McMahan - Softbase Systems)
Subject: Re: And you thought that the Pentium bug was bad!  (Get a load of this!)
Date: 1995/06/22
Message-ID: <3sc4a8$46d@redstone.interpath.net>#1/1
X-Deja-AN: 104873967
distribution: world
references: <3s2las$1br@hustle.rahul.net> <3s46bi$3qe@devel.dvstsol.demon.co.uk>
organization: Interpath -- Providing Internet access to North Carolina
newsgroups: comp.std.c,comp.std.c++,comp.lang.c,comp.lang.c++,comp.sys.intel,comp.arch,comp.software.testing

Nick Gorham (nick@dvstsol.demon.co.uk) wrote:
: : -------------------------------------------------------------------------
: : double d = 0.9;
: :  
: : int
: : main ()
: : {
: :     double d = 0.8;
: :     {
: :         extern double d;
: :  
: :         printf ("%f\n", d);
: :         return 0;
: :     }
: : }
: : -------------------------------------------------------------------------

: Perhaps I am missing the point, but whats the above bit of silly code
: to do with floating point errors. The simple way to fix this "compilor bug"
: is not to write code like this ;-). Perhaps someone will tell otherwise.

I tend to agree with Nick on this one, it's a pathological
case no one would ever encounter (without getting fired! :)) 

Is the code above even legal ANSI C? "extern" refers to something
outside of the current scope, and both d's are outside the inner
block's scope, so wouldn't this be an implementation defined area?
Where's a language lawyer that knows the standard well enough to
comment on this? Isn't this another a[i++] = ++i + i++ + ++i++; type
issue?

Scott




