<div dir="ltr">Why are we using the Itanium mangler for uuidof exprs?  Can we not do that?<div><br></div><div>If not, feel free to grab the approach used in the MS mangler and pretend to mangle a global variable called _GUID_1234....</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 27, 2013 at 1:46 PM, Eric Christopher <span dir="ltr"><<a href="mailto:echristo@gmail.com" target="_blank">echristo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Tue, Aug 27, 2013 at 1:12 PM, Manman Ren <<a href="mailto:manman.ren@gmail.com">manman.ren@gmail.com</a>> wrote:<br>

><br>
><br>
><br>
> On Tue, Aug 27, 2013 at 1:04 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
>><br>
>> On Tue, Aug 27, 2013 at 12:57 PM, Manman Ren <<a href="mailto:manman.ren@gmail.com">manman.ren@gmail.com</a>> wrote:<br>
>> ><br>
>> ><br>
>> ><br>
>> > On Tue, Aug 27, 2013 at 12:41 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>><br>
>> > wrote:<br>
>> >><br>
>> >> On Tue, Aug 27, 2013 at 11:23 AM, Manman Ren <<a href="mailto:manman.ren@gmail.com">manman.ren@gmail.com</a>><br>
>> >> wrote:<br>
>> >><br>
>> >> >> 1) add identifier from Clang (DIBuilder support, plus passing in the<br>
>> >> >> identifier from Clang), updating lots of Clang test cases<br>
>> >><br>
>> >> I assume you're going to have to update a lot of test cases if you<br>
>> >> make the change as you've written it - as we'll start producing empty<br>
>> >> strings ("") for the identifier field instead of null. Is that<br>
>> >> correct?<br>
>> ><br>
>> > The verifier currently accepts both null and a StringRef, so there is no<br>
>> > verification error with the existing<br>
>> > llvm testing cases. Yes, we are now producing "" instead of null. To<br>
>> > make<br>
>> > sure the existing llvm testing<br>
>> > cases follow what DIBuilder emits, we can update the testing cases or<br>
>> > use a<br>
>> > null value when the<br>
>> > string is empty as suggested below.<br>
>><br>
>> It's the Clang test cases I'm concerned about - if you just commit<br>
>> this change, the Clang build will break, won't it?<br>
><br>
><br>
> I attached a patch for updating testing cases earlier:<br>
> it basically changed from null to the actual mangled name.<br>
> One example:<br>
><br>
> -// CHECK: [[C:![0-9]*]] = {{.*}} metadata [[C_MEM:![0-9]*]], i32 0,<br>
> metadata [[C]], null, null} ; [ DW_TAG_structure_type ] [C] {{.*}} [def]<br>
><br>
> +// CHECK: [[C:![0-9]*]] = {{.*}} metadata [[C_MEM:![0-9]*]], i32 0,<br>
> metadata [[C]], null, metadata !"_ZTS1C"} ; [ DW_TAG_structure_type ] [C]<br>
> {{.*}} [def]<br>
><br>
><br>
> By applying the 3 patches (clang, llvm, clang-test), I still see one<br>
> failure: CodeGenCXX/debug-info-template.cpp fails with error: cannot yet<br>
> mangle expression type CXXUuidoofExpr.<br>
><br>
> This can be fixed by modifying ItaniumMangler<br>
> (CXXNameMangler::mangleExpression), it currently has<br>
> FIXME: invent manglings for all these.<br>
><br>
<br>
</div></div>So.. Reid... :)<br>
<span class="HOEnZb"><font color="#888888"><br>
-eric<br>
</font></span></blockquote></div><br></div>