On Fri, Feb 13, 2009 at 3:34 PM, Ian Lance Taylor <i...@google.com> wrote:
> Daniel Jacobowitz <d...@false.org> writes:
>
>> On Fri, Feb 13, 2009 at 12:00:38PM -0800, Ian Lance Taylor wrote:
>>> > Another issue for scope encoding. C++ ABI:
>>> >
>>> > ---
>>> > Occasionally entities in local scopes must be mangled too
>>> > (e.g. because inlining or template compilation causes multiple
>>> > translation units to require access to that entity).
>>> > ---
>>> >
>>> > seems to imply that the local symbols may have external
>>> > linkage. Am I wrong?
>>>
>>> You are wrong.  When an inline function is expanded into multiple
>>> translation units, and that inline function has a static variable, then
>>> multiple translation units require access to the static variable.  That
>>> does not imply that the static variable has external linkage.
>>
>> Does this mean that if you compiled some of those TUs with GCC, and
>> some with icc, they might legitimately access different copies of the
>> static variable?  Seems odd.
>
> Hmmm, you're right, I didn't think of that case.
>
> And, in fact, the ABI does discuss how this case should be handled, and
> g++ appears to do it correctly.  So I was misunderstanding the issue,
> but I think we're still OK.
>
> HJ, do you still see a problem here?
>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12056
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39188

-- 
H.J.

Reply via email to