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.