[LLVMdev] x86_stdcallcc @<n> mangling vs. '\1' prefix [was: x86_stdcallcc and extra name mangling on Windows]

Timur Iskhodzhanov timurrrr at google.com
Thu Mar 28 17:18:07 PDT 2013


Looks good to me, except for
  ; CHECK: MyFunc at 0:
should be probably
  ; CHECK: {{^_MyFunc at 0:}}
and
+; CHECK: alreadyMangled:
should be
+; CHECK: {{^alreadyMangled:}}

2013/3/28 Reid Kleckner <rnk at google.com>:
> Anton, what do you think of David's patch with this test case?  OK to commit
> that?
>
>
> On Wed, Feb 20, 2013 at 12:43 PM, Anton Korobeynikov
> <anton at korobeynikov.info> wrote:
>>
>> The patch looks incorrect. The code just needs to handle \1 properly
>> and clang extended to add explicit \1 to the names which does not
>> require mangling.
>>
>> I do not think that moving whole mangling to clang is a good idea,
>> because then everyone who uses LLVM to call WinApi functions will need
>> to mangle by hands.
>>
>> On Wed, Feb 20, 2013 at 11:25 PM, Timur Iskhodzhanov
>> <timurrrr at google.com> wrote:
>> > I don't remember anything other that what I've written in the bug João
>> > has mentioned.
>> >
>> > Probably something like this patch
>> > http://llvm.org/bugs/show_bug.cgi?id=14410#c6
>> > ?
>> >
>> > 2013/2/20 João Matos <ripzonetriton at gmail.com>:
>> >> I think so. There have been other reports lately related to this being
>> >> wrong.
>> >>
>> >> http://llvm.org/bugs/show_bug.cgi?id=14410
>> >>
>> >> CC'ing Timur since he might know more about this.
>> >>
>> >> On Wed, Feb 20, 2013 at 5:27 PM, David Nadlinger <code at klickverbot.at>
>> >> wrote:
>> >>>
>> >>> On Tue, Feb 19, 2013 at 2:13 PM, Duncan Sands <baldrick at free.fr>
>> >>> wrote:
>> >>> >> My question: Is there an easy way of disabling the name-mangling
>> >>> >> part
>> >>> >> but keep the rest of the CC that I missed?
>> >>> > if you use "\1" + "usual name", it will disable name mangling if you
>> >>> > are
>> >>> > lucky.  A leading \1 is LLVM's way of saying: leave this name alone!
>> >>>
>> >>> Seems like I'm out of luck - the @<n> suffix is added
>> >>> (AddFastCallStdCallSuffix) in the GlobalValue
>> >>> Magnler::getNameWithPrefix overload, without paying respect to whether
>> >>> the name originally had a '\1' prefix or not.
>> >>>
>> >>> Should this be changed?
>> >>>
>> >>> David
>> >>> _______________________________________________
>> >>> LLVM Developers mailing list
>> >>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> João Matos
>> >
>> > _______________________________________________
>> > LLVM Developers mailing list
>> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>>
>> --
>> With best regards, Anton Korobeynikov
>> Faculty of Mathematics and Mechanics, Saint Petersburg State University
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>




More information about the llvm-dev mailing list