<div dir="ltr">The patch is generating a unique identifier for a debug info type, which can help debug info type uniquing.<div>The unique identifier is used internally to remove duplicated debug info types and should not mess up symbols.<div>
<br></div><div>Manman</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 30, 2013 at 11:14 AM, Arthur O'Dwyer <span dir="ltr"><<a href="mailto:arthur.j.odwyer@gmail.com" target="_blank">arthur.j.odwyer@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="im">On Thu, Aug 29, 2013 at 11:51 AM, Manman Ren <<a href="mailto:manman.ren@gmail.com">manman.ren@gmail.com</a>> wrote:<br>

</div>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=189600&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=189600&view=rev</a><br>
<div class="im">> "Debug Info: generate a unique identifier for C++ struct, class, union, and enum."<br>
><br>
> We use CXX mangler to generate unique identifier for external C++ struct,<br>
> union, class and enum.<br>
<br>
</div>I may be misunderstanding the intent of this patch, but please make<br>
sure it doesn't cause bad debugger behavior on common code such as<br>
<br>
    ==file1.cc==<br>
    extern class AllPublic;<br>
    ...<br>
<br>
    ==file2.cc==<br>
    struct AllPublic {   // had been "class ... public:" until we<br>
realized "struct" was shorter<br>
        ...<br>
    };<br>
<br>
At least in C++11 (dcl.type.elab#3) the class-keys "class" and<br>
"struct" may be used interchangeably, so the above code is legal<br>
C++11, and you should make sure that the debug-info symbols for<br>
AllPublic in file2.cc match up with the same symbols for AllPublic in<br>
file1.cc.<br>
<br>
(Old versions of Clang had QOI issues with<br>
    class AllPublic; struct AllPublic { };<br>
giving false-positive warnings. I don't know for sure that this has been fixed.)<br>
<span class="HOEnZb"><font color="#888888"><br>
-Arthur<br>
</font></span></blockquote></div><br></div>