<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 31, 2014 at 6:48 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class=""><div class="h5">On Thu, Jul 31, 2014 at 2:47 PM, Eli Bendersky <<a href="mailto:eliben@google.com">eliben@google.com</a>> wrote:<br>


><br>
><br>
><br>
> On Thu, Jul 31, 2014 at 12:47 PM, Rafael Espíndola<br>
> <<a href="mailto:rafael.espindola@gmail.com">rafael.espindola@gmail.com</a>> wrote:<br>
>><br>
>> > I'm not sure how to access those parts of LLVM from libclang. Besides,<br>
>> > IIRC<br>
>> > targets are not linked into libclang. Do you have an idea?<br>
>><br>
>> The LLVM targets? You shouldn't need them. All that you need is the<br>
>> DataLayout. With that you should be able to use lib/IR/Mangler.<br>
>><br>
><br>
> Attaching a patch - is this what you had in mind?<br>
<br>
</div></div><div class="">>    // The Microsoft mangler may insert a special character in the beginning to<br>
> -  // prevent further mangling. We can strip that for display purposes.<br>
> -  if (Buf[0] == '\x01') {<br>
</div>> -    Buf.erase(0, 1);<br>
> +  // prevent further mangling. We stop mangling and strip it for display<br>
> +  // purposes.<br>
> +  if (FrontendBuf[0] == '\x01') {<br>
> +    FrontendBuf.erase(0, 1);<br>
> +    return cxstring::createDup(FrontendBuf);<br>
<br>
With the approach of using the backend mangler, you wouldn't need to<br>
strip the \01 prefix because the backend mangler does that anyway (see<br>
lib/IR/Mangler.cpp:105).<br>
<br></blockquote><div><br></div><div>Yes, but this is not the path I'm going through - I don't have a LLVM GlobalValue. The Twine-accepting function doesn't do this stripping. See <a href="http://llvm.org/bugs/show_bug.cgi?id=20127">http://llvm.org/bugs/show_bug.cgi?id=20127</a> - I'd be able to simplify this code when it's fixed.</div>

<div><br></div><div>Eli</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Not having to worry about that special prefix seems like a nice<br>
benefit of using the backend mangler too :)<br></blockquote></div></div></div>