[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