Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | glen herrmannsfeldt <gah@ugcs.caltech.edu> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: passing uninitialised data |
| Date | 2012-12-21 21:19 +0000 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <kb2jp1$bqb$1@speranza.aioe.org> (permalink) |
| References | (3 earlier) <kfnpq28h2we.fsf@x-alumni2.alumni.caltech.edu> <50CF8CDB.46EC@mindspring.com> <kfn1uekfur0.fsf@x-alumni2.alumni.caltech.edu> <50D3C6A6.7137@mindspring.com> <kfntxrf5nlo.fsf@x-alumni2.alumni.caltech.edu> |
Tim Rentsch <txr@alumni.caltech.edu> wrote:
(snip, someone wrote)
>> It's the only reason that I can think of for why
>> int main(void) {unsigned char x; return x - x;}
>> should be undefined.
> It turns out that some actual hardware has out-of-band marking
> (for registers, I think) that indicate non-initialization. Those
> machiness (can) trap on a reference to an unitialized register.
More usual would be tagged memory, which can have an unitialized,
or otherwise trap representation.
Stories are that the original WATFOR on the 7090 used parity
errors to detect uninitialized variables. It could actually
set invalid parity before starting execution of the compiled
program.
I believe some Burroughs machines tag memory locations for their
contents. I will guess that there is a trap representation for
the tag.
Though presumable one could say that C requires that such memory
or parity bits be initialized to valid values before the program
starts executing.
> My understanding is that the passage we are discussing was added
> specifically because such machines currently exist, and more
> generally because it is useful to allow similar kinds of traps
> or what-have-you, yet still be inside the boundaries of being
> a conforming implementation.
Well, at least signaling NaN exists on modern systems.
-- glen
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
passing uninitialised data "Mark" <mark_cruzNOTFORSPAM@hotmail.com> - 2012-09-14 11:09 -0400
Re: passing uninitialised data Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-09-14 11:45 -0400
Re: passing uninitialised data James Kuyper <jameskuyper@verizon.net> - 2012-09-14 11:48 -0400
Re: passing uninitialised data Barry Schwarz <schwarzb@dqel.com> - 2012-09-14 10:34 -0700
Re: passing uninitialised data James Kuyper <jameskuyper@verizon.net> - 2012-09-14 14:34 -0400
Re: passing uninitialised data Barry Schwarz <schwarzb@dqel.com> - 2012-09-14 15:26 -0700
Re: passing uninitialised data James Kuyper <jameskuyper@verizon.net> - 2012-09-17 12:18 -0400
Re: passing uninitialised data Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-17 11:52 -0800
Re: passing uninitialised data pete <pfiland@mindspring.com> - 2012-12-17 16:21 -0500
Re: passing uninitialised data Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-20 10:23 -0800
Re: passing uninitialised data pete <pfiland@mindspring.com> - 2012-12-20 21:17 -0500
Re: passing uninitialised data Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-21 09:20 -0800
Re: passing uninitialised data pete <pfiland@mindspring.com> - 2012-12-21 14:52 -0500
Re: passing uninitialised data glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-12-21 21:19 +0000
Re: passing uninitialised data Shao Miller <sha0.miller@gmail.com> - 2012-12-17 19:45 -0500
Re: passing uninitialised data Angel <angel+news@spamcop.net> - 2012-09-14 19:03 +0000
Re: passing uninitialised data James Kuyper <jameskuyper@verizon.net> - 2012-09-14 15:15 -0400
Re: passing uninitialised data Angel <angel+news@spamcop.net> - 2012-09-14 20:26 +0000
Re: passing uninitialised data James Kuyper <jameskuyper@verizon.net> - 2012-09-14 16:45 -0400
Re: passing uninitialised data Kaz Kylheku <kaz@kylheku.com> - 2012-09-14 21:19 +0000
csiph-web