https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65169

Markus Trippelsdorf <trippels at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |MOVED

--- Comment #3 from Markus Trippelsdorf <trippels at gcc dot gnu.org> ---
(In reply to Alan Modra from comment #2)
> I couldn't reproduce this using svn llvm rev 230301, gcc-5 20150223, and
> binutils 2.25.51.20150223.  I was building on a power7 box (because that's
> where I happened to have my latest gcc build), so used -mcpu=power7
> -mno-strict-align.  That ought to trigger the same block move code as
> -mcpu=power8, and a quick visual inspection showed that to be the case.
> 
> I'm guessing that the "s/break/  eak/" difference Markus sees comes from
> utils/TableGen/IntrinsicEmitter.cpp IntrinsicEmitter::EmitAttributes
>     if (numAttrs) {
>       OS << "      NumAttrs = " << numAttrs << ";\n";
>       OS << "      break;\n";
>       OS << "      }\n";
> 
> My generated code for the above looked good, and ran properly on power7. 
> -mcpu=power8 code didn't look much different.
> 
> Markus, are you using gold?  (I wasn't.)  The strings are in a string merge
> section, and I'm wondering if gold miscalculates some string offset.

Yes, I was using gold. 
And indeed using ld.bfd fixes the issue. 
I will open a binutils bug later. x86_64 gold is fine BTW.

Reply via email to