[cfe-dev] Strange character around function declared with "asm"

Eric Christopher echristo at apple.com
Thu Dec 2 23:11:41 PST 2010


On Dec 2, 2010, at 11:10 PM, Chris Lattner wrote:

> 
> On Dec 2, 2010, at 11:07 PM, Eric Christopher wrote:
> 
>> 
>> On Dec 2, 2010, at 11:06 PM, Chris Lattner wrote:
>> 
>>>>>>>> Apparently clang is mangling it this way on purpose as far as I can
>>>>>>>> tell... I'm not really sure why though.
>>>>>>> 
>>>>>>> The gnu "asm renaming" extension says that USER_LABEL_PREFIX is not prefixed onto the symbol name.  The \1 prefix on the LLVM name tells the backend (through the 'Mangler' class) not to add it.
>>>>>> 
>>>>>> Interesting. llvm-gcc bug then?
>>>>> 
>>>>> What's the bug?
>>>> 
>>>> There's no \01 prefix in the llvm-gcc version of the module.
>>> 
>>> On linux or darwin?  IIRC, on linux there is no USER_LABEL_PREFIX so it doesn't matter if there is a \1 or not.
>> 
>> darwin.
>> 
>> Just checked out of curiosity :)
> 
> Ah, I didn't notice that the name was "llvm.foo".  It is entirely possible that llvm-gcc has a special hack for symbols that start with "llvm.", but I don't see it with a quick look.  This is dangerous though, because the intrinsics change over time, and not getting the right argument types would cause the middle-end to blow up.

OK. If you file it I'll fix it :)

-eric



More information about the cfe-dev mailing list