Skip to Content.
Sympa Menu

c-semantics - Re: [C-Semantics] question about 'register' storage-class specifier (and reads of uninitialized values)

c-semantics AT lists.cs.illinois.edu

Subject: C Semantics in K Framework

List archive

Re: [C-Semantics] question about 'register' storage-class specifier (and reads of uninitialized values)


Chronological Thread 
  • From: CUOQ Pascal <Pascal.CUOQ AT cea.fr>
  • To: Chucky Ellison <celliso2 AT illinois.edu>, "c-semantics AT cs.illinois.edu" <c-semantics AT cs.illinois.edu>
  • Subject: Re: [C-Semantics] question about 'register' storage-class specifier (and reads of uninitialized values)
  • Date: Wed, 4 Jan 2012 18:19:47 +0000
  • Accept-language: en-US
  • List-archive: <http://lists.cs.uiuc.edu/pipermail/c-semantics>
  • List-id: C Semantics in K Framework <c-semantics.cs.illinois.edu>

> "register" is [...] used in
> 6.3.2.1:2 to identify another very important class of undefined
> behaviors, having to do with reading uninitialized values.

The rationale for the change is at
http://www.open-std.org/jtc1/sc22/wg14/www/docs/dr_338.htm

> So in total, we have (in a footnote) "the address ... cannot be
> computed" and (in the body) "never had its address taken" used to
> describe the restriction on the register storage class. Are these
> static or dynamic concepts?

I think the intention was that the restriction was a static notion.
This seems to fit both the idea that the compiler cannot be asked
to generate code for the then-branch of your if and that the
compiler should be allowed to use the register-only NaT value
of IA64, that cannot exist in memory, as value of uc in the
example of DR 338.

Pascal






Archive powered by MHonArc 2.6.16.

Top of Page