[LLVMdev] LLVM 2.4 problem? (resend)

Eli Friedman eli.friedman at gmail.com
Wed Oct 15 21:22:29 PDT 2008


On Wed, Oct 15, 2008 at 6:16 PM, David Vandevoorde
<daveed at vandevoorde.com> wrote:
> > An object is created by  a  definition  (_basic.def_)
>
> basic.def doesn't contain the word "create" nor words to that effect

That should be [intro.object]: "An object is a region of storage. An
object is created by a definition..."

> Furthermore, basic.life 3.8/7 makes it clear that an object
> may be created on top of another object, and the name of the first
> object will correctly evaluate to the new object.

That's irrelevant; for the case with two global chars, both of the
objects are alive at the time in question per [basic.stc.static].
Anyway, I'm 99% sure that's supposed to be referring to user-allocated
memory; the lifetime of an non-user-allocated object is permanently
attached to its scope, so it's already gone before anything could be
allocated on top of it.

> The current consensus among CoreWG experts is that the words in the
current standard (and those in the current WP) do not require distinct
variables and temporaries to have distinct addresses per se.

Then what's the alternative model?

-Eli



More information about the llvm-dev mailing list