At Fri, 3 Jul 2009 21:01:29 -0400 (EDT), der Mouse <mouse%Rodents-Montreal.ORG@localhost> wrote: Subject: Re: strtonum(3) from OpenBSD? > > [Greg Woods] > > (I now do understand a trap representation can trigger a trap > > exception on any type of access, at least for non-auto variables that > > is.) > > Why the carveout for auto? Is it specifically forbidden to trap on > reading (or modifying in a way that depends on the former value) an > auto variable that has not yet been set to anything? The best explanation I've been able to find (I've not tried to read enough of the standard & rationale, to work it out for myself) is that for automatic variables the implementation is free to give a default value to un-initialized auto variables which is a trap representation. In this case the first read access before a write could then raise an exception (but the first write access will not raise an exception on an auto variable even if it does contain a trap representation). Alternatively since an un-initialized automatic variable could have any garbage value before it is explicitly initialized it is possible that such a garbage value may be a trap representation for the type used for that variable. I found an online copy of a relevant excerpt from Derek Jones' new book that may help, or may just muddle things more :-) http://c0x.coding-guidelines.com/6.2.6.1.pdf His whole book seems to be available here: http://www.coding-guidelines.com/cbook/cbook1_1.pdf I have yet to digest more than a few pages of it. :-) -- Greg A. Woods Planix, Inc. <woods%planix.com@localhost> +1 416 218-0099 http://www.planix.com/
Attachment:
pgp8YWA3MPF26.pgp
Description: PGP signature