> From: Paul Schlie <[EMAIL PROTECTED]>
>> From: Mark Mitchell <[EMAIL PROTECTED]>
>>> Paul Schlie wrote:
>>> - ??? no such thing, you can't "dynamically" initialize a "static const",
>>>   as then it's not a "static const", but rather simply a global "const"
>>> 
>>>   (as a "static const" object is logically equivalent to a named/addressable
>>>    literal, yes?)
>> 
>> No, it's not.
>> 
>> static const int i = f();
> 
> Admittedly didn't think that was legal, as I though all "static const"
> initializer values needed to be resolvable at compile time, directly or
> indirectly from literal values by the front-end, or otherwise invalid.

So then more accurately, MEM_READONLY_P is only "true" for references to:
- "static const" objects which are equated to a literal initializer.
- or an arbitrary literal value which has not been in-lined into the code,
  as it's either too large to be done efficiently, or may be referenced
  indirectly via a pointer.

  (is this essentially correct?)


Reply via email to