Yes, I thought I responded but didn't. This has been on my plate for a long time, thank you.<div><br></div><div>-eric</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Nov 6, 2012 at 10:45 PM, Douglas Gregor <span dir="ltr"><<a href="mailto:dgregor@apple.com" target="_blank">dgregor@apple.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"><br>
On Nov 2, 2012, at 4:40 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com">dblaikie@gmail.com</a>> wrote:<br>
<br>
> Author: dblaikie<br>
> Date: Fri Nov  2 18:40:00 2012<br>
> New Revision: 167336<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=167336&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=167336&view=rev</a><br>
> Log:<br>
> Emit debug info for C++ struct definitions as DW_TAG_structure_type (instead of class_type).<br>
<br>
</div>Thank you!<br>
<br>
        - Doug<br>
<div class="HOEnZb"><div class="h5"><br>
> Modified:<br>
>    cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
>    cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
>    cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp<br>
><br>
> Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=167336&r1=167335&r2=167336&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=167336&r1=167335&r2=167336&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)<br>
> +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri Nov  2 18:40:00 2012<br>
> @@ -1875,7 +1875,7 @@<br>
>   // Get overall information about the record type for the debug info.<br>
>   llvm::DIFile DefUnit = getOrCreateFile(RD->getLocation());<br>
>   unsigned Line = getLineNumber(RD->getLocation());<br>
> -  StringRef RDName = RD->getName();<br>
> +  StringRef RDName = getClassName(RD);<br>
><br>
>   llvm::DIDescriptor RDContext;<br>
>   if (CGM.getCodeGenOpts().getDebugInfo() == CodeGenOptions::LimitedDebugInfo)<br>
> @@ -1896,9 +1896,7 @@<br>
>   if (RD->isUnion())<br>
>     RealDecl = DBuilder.createUnionType(RDContext, RDName, DefUnit, Line,<br>
>                                       Size, Align, 0, llvm::DIArray());<br>
> -  else if (CXXDecl) {<br>
> -    RDName = getClassName(RD);<br>
> -<br>
> +  else if (RD->isClass()) {<br>
>     // FIXME: This could be a struct type giving a default visibility different<br>
>     // than C++ class type, but needs llvm metadata changes first.<br>
>     RealDecl = DBuilder.createClassType(RDContext, RDName, DefUnit, Line,<br>
><br>
> Modified: cfe/trunk/test/CodeGenCXX/debug-info-class.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=167336&r1=167335&r2=167336&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-class.cpp?rev=167336&r1=167335&r2=167336&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/CodeGenCXX/debug-info-class.cpp (original)<br>
> +++ cfe/trunk/test/CodeGenCXX/debug-info-class.cpp Fri Nov  2 18:40:00 2012<br>
> @@ -8,7 +8,7 @@<br>
> union baz;<br>
> void func(baz *f) { // CHECK: DW_TAG_union_type<br>
> }<br>
> -struct A { // FIXME: we're still emitting this as DW_TAG_class_type<br>
> +struct A { // CHECK: DW_TAG_structure_type<br>
>   int one;<br>
>   static const int HdrSize = 52; // CHECK: HdrSize<br>
>   int two;<br>
><br>
> Modified: cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp?rev=167336&r1=167335&r2=167336&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp?rev=167336&r1=167335&r2=167336&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp (original)<br>
> +++ cfe/trunk/test/CodeGenCXX/debug-info-fwd-ref.cpp Fri Nov  2 18:40:00 2012<br>
> @@ -16,11 +16,10 @@<br>
>     return 0;<br>
> }<br>
><br>
> -// Make sure we have two DW_TAG_class_types for baz and bar and no forward<br>
> +// Make sure we have two DW_TAG_structure_types for baz and bar and no forward<br>
> // references.<br>
> -// FIXME: These should be struct types to match the declaration.<br>
> -// CHECK: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 8, i64 128, i64 64, i32 0, i32 0, null, metadata !18, i32 0, null, null} ; [ DW_TAG_class_type ]<br>
> -// CHECK: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 32, i64 32, i32 0, i32 0, null, metadata !21, i32 0, null, null} ; [ DW_TAG_class_type ]<br>
> -// CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 8, i64 0, i64 0, i32 0, i32 4, i32 0, null, i32 0, i32 0} ; [ DW_TAG_class_type ]<br>
> -// CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 0, i64 0, i32 0, i32 4, null, null, i32 0, null, null} ; [ DW_TAG_class_type ]<br>
> +// CHECK: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 8, i64 128, i64 64, i32 0, i32 0, null, metadata !18, i32 0, null, null} ; [ DW_TAG_structure_type ]<br>
> +// CHECK: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 32, i64 32, i32 0, i32 0, null, metadata !21, i32 0, null, null} ; [ DW_TAG_structure_type ]<br>
> +// CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"bar", metadata !6, i32 8, i64 0, i64 0, i32 0, i32 4, i32 0, null, i32 0, i32 0} ; [ DW_TAG_structure_type ]<br>
> +// CHECK-NOT: metadata !{i32 {{.*}}, null, metadata !"baz", metadata !6, i32 3, i64 0, i64 0, i32 0, i32 4, null, null, i32 0, null, null} ; [ DW_TAG_structure_type ]<br>
><br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div>