On Sun, Dec 30, 2012 at 1:22 AM, Alexandre Oliva <aol...@redhat.com> wrote:
> On Dec 21, 2012, Richard Biener <richard.guent...@gmail.com> wrote:
>
>> On Fri, Dec 21, 2012 at 6:33 AM, Alexandre Oliva <aol...@redhat.com> wrote:
>>> libmudflap emits a global initializer that registers memory ranges for
>>> global data symbols.  However, even if IPA decides not to emit a symbol
>>> because it's unused, we'd still emit registration sequences for them in
>>> some cases, which, in the PR testcase, would result in TOC references to
>>> the undefined symbols.
>
>> Hmm, I think that at this point of the compilation you are looking for
>> TREE_ASM_WRITTEN instead.
>
> That doesn't work, several mudflap regressions show up because accesses
> to global library symbols that are accessed by template methods compiled
> with mudflap (say cout) are then verified but not registered.  We have
> to register symbols that are not emitted but that referenced.

Ehm, how can something be not emitted but still referenced?  You mean if
it's external?  So maybe

  if (!TREE_ASM_WRITTEN (obj) || DECL_EXTERNAL (obj))

instead?

Thanks,
Richard.

> I've now updated the comment to reflect this.
>
> Is this ok to install?  Regstrapped again (along with the patches for
> feraiseexcept, since there weren't any non-comment changes here) on
> x86_64-linux-gnu and i686-linux-gnu.
>
>
>
>
> --
> Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
> You must be the change you wish to see in the world. -- Gandhi
> Be Free! -- http://FSFLA.org/   FSF Latin America board member
> Free Software Evangelist      Red Hat Brazil Compiler Engineer
>

Reply via email to