Mind adding a comment to the effect of "Add the location if we have a have a valid expression including physical register" or some such?<div><br></div><div>-eric<br><br><div class="gmail_quote">On Sun Jan 25 2015 at 11:10:34 AM Adrian Prantl <<a href="mailto:aprantl@apple.com">aprantl@apple.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: adrian<br>
Date: Sun Jan 25 13:04:08 2015<br>
New Revision: 227056<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=227056&view=rev" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project?rev=227056&view=rev</a><br>
Log:<br>
Debug info: Fix PR22296 by omitting the DW_AT_location if we lost the<br>
physical register that is described in a DBG_VALUE.<br>
<br>
In the testcase the DBG_VALUE describing "p5" becomes unavailable<br>
because the register its address is in is clobbered and we (currently)<br>
aren't smart enough to realize that the value is rematerialized immediately<br>
after the DBG_VALUE and/or is actually a stack slot.<br>
<br>
Added:<br>
    llvm/trunk/test/DebugInfo/X86/<u></u>nophysreg.ll<br>
Modified:<br>
    llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfCompileUnit.<u></u>cpp<br>
    llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfExpression.cpp<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfCompileUnit.<u></u>cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp?rev=227056&r1=227055&r2=227056&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>CodeGen/AsmPrinter/<u></u>DwarfCompileUnit.cpp?rev=<u></u>227056&r1=227055&r2=227056&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfCompileUnit.<u></u>cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfCompileUnit.<u></u>cpp Sun Jan 25 13:04:08 2015<br>
@@ -768,15 +768,18 @@ void DwarfCompileUnit::<u></u>addComplexAddress<br>
   DIELoc *Loc = new (DIEValueAllocator) DIELoc();<br>
   DIEDwarfExpression DwarfExpr(*Asm, *this, *Loc);<br>
   DIExpression Expr = DV.getExpression();<br>
+  bool ValidReg;<br>
   if (Location.getOffset()) {<br>
-    if (DwarfExpr.<u></u>AddMachineRegIndirect(<u></u>Location.getReg(),<br>
-                                        Location.getOffset()))<br>
+    ValidReg = DwarfExpr.<u></u>AddMachineRegIndirect(<u></u>Location.getReg(),<br>
+                                               Location.getOffset());<br>
+    if (ValidReg)<br>
       DwarfExpr.AddExpression(Expr);<br>
   } else<br>
-    DwarfExpr.<u></u>AddMachineRegExpression(Expr, Location.getReg());<br>
+    ValidReg = DwarfExpr.<u></u>AddMachineRegExpression(Expr, Location.getReg());<br>
<br>
   // Now attach the location information to the DIE.<br>
-  addBlock(Die, Attribute, Loc);<br>
+  if (ValidReg)<br>
+    addBlock(Die, Attribute, Loc);<br>
 }<br>
<br>
 /// Add a Dwarf loclistptr attribute data and value.<br>
<br>
Modified: llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfExpression.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfExpression.cpp?rev=227056&r1=227055&r2=227056&view=diff" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/lib/<u></u>CodeGen/AsmPrinter/<u></u>DwarfExpression.cpp?rev=<u></u>227056&r1=227055&r2=227056&<u></u>view=diff</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfExpression.cpp (original)<br>
+++ llvm/trunk/lib/CodeGen/<u></u>AsmPrinter/DwarfExpression.cpp Sun Jan 25 13:04:08 2015<br>
@@ -92,6 +92,9 @@ bool DwarfExpression::<u></u>AddMachineRegPiece<br>
                                          unsigned PieceSizeInBits,<br>
                                          unsigned PieceOffsetInBits) {<br>
   const TargetRegisterInfo *TRI = getTRI();<br>
+  if (!TRI->isPhysicalRegister(<u></u>MachineReg))<br>
+    return false;<br>
+<br>
   int Reg = TRI->getDwarfRegNum(<u></u>MachineReg, false);<br>
<br>
   // If this is a valid register number, emit it.<br>
<br>
Added: llvm/trunk/test/DebugInfo/X86/<u></u>nophysreg.ll<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/nophysreg.ll?rev=227056&view=auto" target="_blank">http://llvm.org/viewvc/llvm-<u></u>project/llvm/trunk/test/<u></u>DebugInfo/X86/nophysreg.ll?<u></u>rev=227056&view=auto</a><br>
==============================<u></u>==============================<u></u>==================<br>
--- llvm/trunk/test/DebugInfo/X86/<u></u>nophysreg.ll (added)<br>
+++ llvm/trunk/test/DebugInfo/X86/<u></u>nophysreg.ll Sun Jan 25 13:04:08 2015<br>
@@ -0,0 +1,373 @@<br>
+; RUN: llc -filetype=obj < %s | llvm-dwarfdump -debug-dump=info - | FileCheck %s<br>
+;<br>
+; PR22296: In this testcase the DBG_VALUE describing "p5" becomes unavailable<br>
+; because the register its address is in is clobbered and we (currently) aren't<br>
+; smart enough to realize that the value is rematerialized immediately after the<br>
+; DBG_VALUE and/or is actually a stack slot.<br>
+;<br>
+; Test that we handle this situation gracefully by omitting the DW_AT_location<br>
+; and not asserting.<br>
+;<br>
+; CHECK: DW_TAG_formal_parameter<br>
+; CHECK: DW_AT_name {{.*}}"p5"<br>
+; CHECK-NOT: DW_AT_location<br>
+; CHECK: DW_TAG<br>
+; ModuleID = 'bugpoint-reduced-simplified.<u></u>bc'<br>
+target datalayout = "e-m:o-i64:64-f80:128-n8:16:<u></u>32:64-S128"<br>
+target triple = "x86_64-apple-macosx10.10.0"<br>
+<br>
+%class.D.1.85 = type { %class.C.0.84 }<br>
+%class.C.0.84 = type { i8 }<br>
+%class.J.2.86 = type { i8 }<br>
+%class.B.7.91 = type { i8 }<br>
+%class.D.3.9.93 = type { %class.C.4.8.92 }<br>
+%class.C.4.8.92 = type { i8 }<br>
+%class.G.3.87 = type { i8 }<br>
+%class.F.4.88 = type { i8 }<br>
+%class.D.0.6.90 = type { %class.C.1.5.89 }<br>
+%class.C.1.5.89 = type { i8 }<br>
+<br>
+; Function Attrs: nounwind readnone ssp uwtable<br>
+declare %class.D.1.85* @_Z9addressofR1DIPiE(%class.D.<u></u>1.85* readnone dereferenceable(1)) #0<br>
+<br>
+; Function Attrs: nounwind readnone<br>
+declare void @llvm.dbg.declare(metadata, metadata, metadata) #1<br>
+<br>
+; Function Attrs: nounwind ssp uwtable<br>
+define void @_<u></u>ZN1J20buildRegisterClassesERi(<u></u>%class.J.2.86* %this, i32* nocapture readnone dereferenceable(4)) #2 align 2 {<br>
+entry:<br>
+  %ref.tmp.i.i34 = alloca i32, align 4<br>
+  %d = alloca %class.D.1.85, align 1<br>
+  %__begin7 = alloca %class.B.7.91, align 1<br>
+  %__end9 = alloca %class.B.7.91, align 1<br>
+  %e = alloca %class.D.1.85, align 1<br>
+  %f = alloca %class.D.3.9.93, align 1<br>
+  br i1 undef, label %<a href="http://for.body.lr.ph" target="_blank">for.body.lr.ph</a>, label %for.end28, !dbg !236<br>
+<br>
+<a href="http://for.body.lr.ph" target="_blank">for.body.lr.ph</a>:                                   ; preds = %entry<br>
+  %__tree_.i.i33 = getelementptr inbounds %class.D.1.85* %d, i64 0, i32 0, !dbg !237<br>
+  %__tree_.i.i35 = getelementptr inbounds %class.D.3.9.93* %f, i64 0, i32 0, !dbg !240<br>
+  br label %for.body, !dbg !236<br>
+<br>
+for.body:                                         ; preds = %for.inc27, %<a href="http://for.body.lr.ph" target="_blank">for.body.lr.ph</a><br>
+  call void @_ZN1CIPiEC1ERKi(%class.C.0.<u></u>84* %__tree_.i.i33, i32* dereferenceable(4) undef) #4, !dbg !237<br>
+  br i1 undef, label %for.body14, label %for.inc27, !dbg !243<br>
+<br>
+for.body14:                                       ; preds = %for.body14, %for.body<br>
+  call void @_ZN1CIiEC1ERKi(%class.C.4.8.<u></u>92* %__tree_.i.i35, i32* dereferenceable(4) %ref.tmp.i.i34) #4, !dbg !240<br>
+  call void @_ZN1DIPiE3endEv(%class.D.1.<u></u>85* %e) #4, !dbg !244<br>
+  call void @llvm.dbg.value(metadata %class.D.1.85* %d, i64 0, metadata !245, metadata !247) #4, !dbg !248<br>
+  call void @_Z16set_intersectionI1BIiES0_<u></u>IPiE1AI1DIS2_EEiEvT_T0_T1_T2_(<u></u>%class.D.1.85* %d, i32 0) #4, !dbg !249<br>
+  call void @_ZN1BI1DIPiEEppEv(%class.B.7.<u></u>91* %__begin7) #4, !dbg !243<br>
+  %call13 = call zeroext i1 @_Zne1BI1DIPiEERS3_(%class.B.<u></u>7.91* dereferenceable(1) %__end9) #4, !dbg !243<br>
+  br i1 %call13, label %for.body14, label %for.inc27, !dbg !243<br>
+<br>
+for.inc27:                                        ; preds = %for.body14, %for.body<br>
+  %call = call zeroext i1 @_Zne1FS_() #4, !dbg !236<br>
+  br i1 %call, label %for.body, label %for.end28, !dbg !236<br>
+<br>
+for.end28:                                        ; preds = %for.inc27, %entry<br>
+  ret void, !dbg !250<br>
+}<br>
+<br>
+declare void @_ZN1J12getRegistersEv(%class.<u></u>J.2.86*) #3<br>
+<br>
+declare void @_ZN1G5beginEv(%class.G.3.87*) #3<br>
+<br>
+declare void @_ZN1G3endEv(%class.G.3.87*) #3<br>
+<br>
+declare zeroext i1 @_Zne1FS_() #3<br>
+<br>
+declare i32 @_ZN1FdeEv(%class.F.4.88*) #3<br>
+<br>
+declare void @_ZN1DIS_IPiEE3endEv(%class.D.<u></u>0.6.90*) #3<br>
+<br>
+declare zeroext i1 @_Zne1BI1DIPiEERS3_(%class.B.<u></u>7.91* dereferenceable(1)) #3<br>
+<br>
+declare void @_ZN1BI1DIPiEEdeEv(%class.B.7.<u></u>91*) #3<br>
+<br>
+declare void @_ZN1DIiE3endEv(%class.D.3.9.<u></u>93*) #3<br>
+<br>
+declare void @_ZN1DIPiE3endEv(%class.D.1.<u></u>85*) #3<br>
+<br>
+declare void @_ZN1BI1DIPiEEppEv(%class.B.7.<u></u>91*) #3<br>
+<br>
+declare void @_ZN1FppEv(%class.F.4.88*) #3<br>
+<br>
+declare void @_ZN1CI1DIPiEEC1ERKi(%class.C.<u></u>1.5.89*, i32* dereferenceable(4)) #3<br>
+<br>
+declare void @_ZN1CIPiEC1ERKi(%class.C.0.<u></u>84*, i32* dereferenceable(4)) #3<br>
+<br>
+declare void @_ZN1CIiEC1ERKi(%class.C.4.8.<u></u>92*, i32* dereferenceable(4)) #3<br>
+<br>
+declare void @_Z16set_intersectionI1BIiES0_<u></u>IPiE1AI1DIS2_EEiEvT_T0_T1_T2_(<u></u>%class.D.1.85*, i32) #3<br>
+<br>
+; Function Attrs: nounwind readnone<br>
+declare void @llvm.dbg.value(metadata, i64, metadata, metadata) #1<br>
+<br>
+; Function Attrs: nounwind<br>
+declare void @llvm.lifetime.start(i64, i8* nocapture) #4<br>
+<br>
+; Function Attrs: nounwind<br>
+declare void @llvm.lifetime.end(i64, i8* nocapture) #4<br>
+<br>
+attributes #0 = { nounwind readnone ssp uwtable }<br>
+attributes #1 = { nounwind readnone }<br>
+attributes #2 = { nounwind ssp uwtable }<br>
+attributes #4 = { nounwind }<br>
+<br>
+!<a href="http://llvm.dbg.cu" target="_blank">llvm.dbg.cu</a> = !{!0}<br>
+!llvm.module.flags = !{!232, !233, !234}<br>
+!llvm.ident = !{!235}<br>
+<br>
+!0 = !{!"0x11\004\00clang version 3.7.0 (trunk 226915) (llvm/trunk 226905)\001\00\000\00\001", !1, !2, !3, !146, !2, !2} ; [ DW_TAG_compile_unit ] [/AsmMatcherEmitter.cpp] [DW_LANG_C_plus_plus]<br>
+!1 = !{!"AsmMatcherEmitter.cpp", !""}<br>
+!2 = !{}<br>
+!3 = !{!4, !23, !33, !42, !52, !59, !68, !84, !92, !101, !117, !125, !134}<br>
+!4 = !{!"0x2\00D<int *>\0022\008\008\000\000\000", !5, null, null, !6, null, !19, !"_ZTS1DIPiE"} ; [ DW_TAG_class_type ] [D<int *>] [line 22, size 8, align 8, offset 0] [def] [from ]<br>
+!5 = !{!"test1.cpp", !""}<br>
+!6 = !{!7, !9, !13, !18}<br>
+!7 = !{!"0xd\00__tree_\0024\008\<u></u>008\000\000", !5, !"_ZTS1DIPiE", !8} ; [ DW_TAG_member ] [__tree_] [line 24, size 8, align 8, offset 0] [from __base]<br>
+!8 = !{!"0x16\00__base\0023\000\<u></u>000\000\000", !5, !"_ZTS1DIPiE", !"_ZTS1CIPiE"} ; [ DW_TAG_typedef ] [__base] [line 23, size 0, align 0, offset 0] [from _ZTS1CIPiE]<br>
+!9 = !{!"0x2e\00D\00D\00\0027\000\<u></u>000\000\000\00259\001\0027", !5, !"_ZTS1DIPiE", !10, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 27] [public] [D]<br>
+!10 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !11, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!11 = !{null, !12}<br>
+!12 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1DIPiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1DIPiE]<br>
+!13 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIPiE5beginEv\0028\000\000\<u></u>000\000\00259\001\0028", !5, !"_ZTS1DIPiE", !14, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 28] [public] [begin]<br>
+!14 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !15, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!15 = !{!16, !12}<br>
+!16 = !{!"0x16\00iterator\0026\000\<u></u>000\000\000", !5, !"_ZTS1DIPiE", !17} ; [ DW_TAG_typedef ] [iterator] [line 26, size 0, align 0, offset 0] [from const_iterator]<br>
+!17 = !{!"0x16\00const_iterator\<u></u>0019\000\000\000\000", !5, !"_ZTS1CIPiE", !"_ZTS1BIPiE"} ; [ DW_TAG_typedef ] [const_iterator] [line 19, size 0, align 0, offset 0] [from _ZTS1BIPiE]<br>
+!18 = !{!"0x2e\00end\00end\00_<u></u>ZN1DIPiE3endEv\0029\000\000\<u></u>000\000\00259\001\0029", !5, !"_ZTS1DIPiE", !14, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 29] [public] [end]<br>
+!19 = !{!20}<br>
+!20 = !{!"0x2f\00_Key\000\000", null, !21, null}  ; [ DW_TAG_template_type_parameter ]<br>
+!21 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !22} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from int]<br>
+!22 = !{!"0x24\00int\000\0032\0032\<u></u>000\000\005", null, null} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]<br>
+!23 = !{!"0x2\00C<int *>\0017\008\008\000\000\000", !5, null, null, !24, null, !31, !"_ZTS1CIPiE"} ; [ DW_TAG_class_type ] [C<int *>] [line 17, size 8, align 8, offset 0] [def] [from ]<br>
+!24 = !{!25}<br>
+!25 = !{!"0x2e\00C\00C\00\0020\000\<u></u>000\000\000\00259\001\0020", !5, !"_ZTS1CIPiE", !26, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 20] [public] [C]<br>
+!26 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !27, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!27 = !{null, !28, !29}<br>
+!28 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1CIPiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1CIPiE]<br>
+!29 = !{!"0x10\00\000\000\000\000\<u></u>000", null, null, !30} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!30 = !{!"0x26\00\000\000\000\000\<u></u>000", null, null, !22} ; [ DW_TAG_const_type ] [line 0, size 0, align 0, offset 0] [from int]<br>
+!31 = !{!32}<br>
+!32 = !{!"0x2f\00_Tp\000\000", null, !21, null}   ; [ DW_TAG_template_type_parameter ]<br>
+!33 = !{!"0x2\00B<int *>\0011\008\008\000\000\000", !5, null, null, !34, null, !31, !"_ZTS1BIPiE"} ; [ DW_TAG_class_type ] [B<int *>] [line 11, size 8, align 8, offset 0] [def] [from ]<br>
+!34 = !{!35, !39}<br>
+!35 = !{!"0x2e\00operator*\<u></u>00operator*\00_ZN1BIPiEdeEv\<u></u>0013\000\000\000\000\00259\<u></u>001\0013", !5, !"_ZTS1BIPiE", !36, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 13] [public] [operator*]<br>
+!36 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !37, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!37 = !{!21, !38}<br>
+!38 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1BIPiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1BIPiE]<br>
+!39 = !{!"0x2e\00operator++\<u></u>00operator++\00_ZN1BIPiEppEv\<u></u>0014\000\000\000\000\00259\<u></u>001\0014", !5, !"_ZTS1BIPiE", !40, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 14] [public] [operator++]<br>
+!40 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !41, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!41 = !{null, !38}<br>
+!42 = !{!"0x2\00J\0042\008\008\000\<u></u>000\000", !5, null, null, !43, null, null, !"_ZTS1J"} ; [ DW_TAG_class_type ] [J] [line 42, size 8, align 8, offset 0] [def] [from ]<br>
+!43 = !{!44, !48}<br>
+!44 = !{!"0x2e\00getRegisters\<u></u>00getRegisters\00_<u></u>ZN1J12getRegistersEv\0043\000\<u></u>000\000\000\00256\001\0043", !5, !"_ZTS1J", !45, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 43] [getRegisters]<br>
+!45 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !46, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!46 = !{!"_ZTS1G", !47}<br>
+!47 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1J"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1J]<br>
+!48 = !{!"0x2e\<u></u>00buildRegisterClasses\<u></u>00buildRegisterClasses\00_<u></u>ZN1J20buildRegisterClassesERi\<u></u>0044\000\000\000\000\00256\<u></u>001\0044", !5, !"_ZTS1J", !49, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 44] [buildRegisterClasses]<br>
+!49 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !50, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!50 = !{null, !47, !51}<br>
+!51 = !{!"0x10\00\000\000\000\000\<u></u>000", null, null, !22} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from int]<br>
+!52 = !{!"0x2\00G\0037\008\008\000\<u></u>000\000", !5, null, null, !53, null, null, !"_ZTS1G"} ; [ DW_TAG_class_type ] [G] [line 37, size 8, align 8, offset 0] [def] [from ]<br>
+!53 = !{!54, !58}<br>
+!54 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1G5beginEv\0039\000\000\000\<u></u>000\00259\001\0039", !5, !"_ZTS1G", !55, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 39] [public] [begin]<br>
+!55 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !56, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!56 = !{!"_ZTS1F", !57}<br>
+!57 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1G"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1G]<br>
+!58 = !{!"0x2e\00end\00end\00_<u></u>ZN1G3endEv\0040\000\000\000\<u></u>000\00259\001\0040", !5, !"_ZTS1G", !55, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 40] [public] [end]<br>
+!59 = !{!"0x2\00F\0031\008\008\000\<u></u>000\000", !5, null, null, !60, null, null, !"_ZTS1F"} ; [ DW_TAG_class_type ] [F] [line 31, size 8, align 8, offset 0] [def] [from ]<br>
+!60 = !{!61, !65}<br>
+!61 = !{!"0x2e\00operator*\<u></u>00operator*\00_ZN1FdeEv\0033\<u></u>000\000\000\000\00259\001\<u></u>0033", !5, !"_ZTS1F", !62, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 33] [public] [operator*]<br>
+!62 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !63, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!63 = !{!22, !64}<br>
+!64 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1F"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1F]<br>
+!65 = !{!"0x2e\00operator++\<u></u>00operator++\00_ZN1FppEv\0034\<u></u>000\000\000\000\00259\001\<u></u>0034", !5, !"_ZTS1F", !66, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 34] [public] [operator++]<br>
+!66 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !67, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!67 = !{null, !64}<br>
+!68 = !{!"0x2\00D<D<int *> >\0022\008\008\000\000\000", !5, null, null, !69, null, !82, !"_ZTS1DIS_IPiEE"} ; [ DW_TAG_class_type ] [D<D<int *> >] [line 22, size 8, align 8, offset 0] [def] [from ]<br>
+!69 = !{!70, !72, !76, !81}<br>
+!70 = !{!"0xd\00__tree_\0024\008\<u></u>008\000\000", !5, !"_ZTS1DIS_IPiEE", !71} ; [ DW_TAG_member ] [__tree_] [line 24, size 8, align 8, offset 0] [from __base]<br>
+!71 = !{!"0x16\00__base\0023\000\<u></u>000\000\000", !5, !"_ZTS1DIS_IPiEE", !"_ZTS1CI1DIPiEE"} ; [ DW_TAG_typedef ] [__base] [line 23, size 0, align 0, offset 0] [from _ZTS1CI1DIPiEE]<br>
+!72 = !{!"0x2e\00D\00D\00\0027\000\<u></u>000\000\000\00259\001\0027", !5, !"_ZTS1DIS_IPiEE", !73, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 27] [public] [D]<br>
+!73 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !74, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!74 = !{null, !75}<br>
+!75 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1DIS_IPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1DIS_IPiEE]<br>
+!76 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIS_IPiEE5beginEv\0028\000\<u></u>000\000\000\00259\001\0028", !5, !"_ZTS1DIS_IPiEE", !77, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 28] [public] [begin]<br>
+!77 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !78, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!78 = !{!79, !75}<br>
+!79 = !{!"0x16\00iterator\0026\000\<u></u>000\000\000", !5, !"_ZTS1DIS_IPiEE", !80} ; [ DW_TAG_typedef ] [iterator] [line 26, size 0, align 0, offset 0] [from const_iterator]<br>
+!80 = !{!"0x16\00const_iterator\<u></u>0019\000\000\000\000", !5, !"_ZTS1CI1DIPiEE", !"_ZTS1BI1DIPiEE"} ; [ DW_TAG_typedef ] [const_iterator] [line 19, size 0, align 0, offset 0] [from _ZTS1BI1DIPiEE]<br>
+!81 = !{!"0x2e\00end\00end\00_<u></u>ZN1DIS_IPiEE3endEv\0029\000\<u></u>000\000\000\00259\001\0029", !5, !"_ZTS1DIS_IPiEE", !77, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 29] [public] [end]<br>
+!82 = !{!83}<br>
+!83 = !{!"0x2f\00_Key\000\000", null, !"_ZTS1DIPiE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!84 = !{!"0x2\00C<D<int *> >\0017\008\008\000\000\000", !5, null, null, !85, null, !90, !"_ZTS1CI1DIPiEE"} ; [ DW_TAG_class_type ] [C<D<int *> >] [line 17, size 8, align 8, offset 0] [def] [from ]<br>
+!85 = !{!86}<br>
+!86 = !{!"0x2e\00C\00C\00\0020\000\<u></u>000\000\000\00259\001\0020", !5, !"_ZTS1CI1DIPiEE", !87, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 20] [public] [C]<br>
+!87 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !88, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!88 = !{null, !89, !29}<br>
+!89 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1CI1DIPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1CI1DIPiEE]<br>
+!90 = !{!91}<br>
+!91 = !{!"0x2f\00_Tp\000\000", null, !"_ZTS1DIPiE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!92 = !{!"0x2\00B<D<int *> >\0011\008\008\000\000\000", !5, null, null, !93, null, !90, !"_ZTS1BI1DIPiEE"} ; [ DW_TAG_class_type ] [B<D<int *> >] [line 11, size 8, align 8, offset 0] [def] [from ]<br>
+!93 = !{!94, !98}<br>
+!94 = !{!"0x2e\00operator*\<u></u>00operator*\00_<u></u>ZN1BI1DIPiEEdeEv\0013\000\000\<u></u>000\000\00259\001\0013", !5, !"_ZTS1BI1DIPiEE", !95, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 13] [public] [operator*]<br>
+!95 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !96, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!96 = !{!"_ZTS1DIPiE", !97}<br>
+!97 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1BI1DIPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1BI1DIPiEE]<br>
+!98 = !{!"0x2e\00operator++\<u></u>00operator++\00_<u></u>ZN1BI1DIPiEEppEv\0014\000\000\<u></u>000\000\00259\001\0014", !5, !"_ZTS1BI1DIPiEE", !99, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 14] [public] [operator++]<br>
+!99 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !100, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!100 = !{null, !97}<br>
+!101 = !{!"0x2\00D<int>\0022\008\008\<u></u>000\000\000", !5, null, null, !102, null, !115, !"_ZTS1DIiE"} ; [ DW_TAG_class_type ] [D<int>] [line 22, size 8, align 8, offset 0] [def] [from ]<br>
+!102 = !{!103, !105, !109, !114}<br>
+!103 = !{!"0xd\00__tree_\0024\008\<u></u>008\000\000", !5, !"_ZTS1DIiE", !104} ; [ DW_TAG_member ] [__tree_] [line 24, size 8, align 8, offset 0] [from __base]<br>
+!104 = !{!"0x16\00__base\0023\000\<u></u>000\000\000", !5, !"_ZTS1DIiE", !"_ZTS1CIiE"} ; [ DW_TAG_typedef ] [__base] [line 23, size 0, align 0, offset 0] [from _ZTS1CIiE]<br>
+!105 = !{!"0x2e\00D\00D\00\0027\000\<u></u>000\000\000\00259\001\0027", !5, !"_ZTS1DIiE", !106, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 27] [public] [D]<br>
+!106 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !107, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!107 = !{null, !108}<br>
+!108 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1DIiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1DIiE]<br>
+!109 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIiE5beginEv\0028\000\000\<u></u>000\000\00259\001\0028", !5, !"_ZTS1DIiE", !110, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 28] [public] [begin]<br>
+!110 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !111, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!111 = !{!112, !108}<br>
+!112 = !{!"0x16\00iterator\0026\000\<u></u>000\000\000", !5, !"_ZTS1DIiE", !113} ; [ DW_TAG_typedef ] [iterator] [line 26, size 0, align 0, offset 0] [from const_iterator]<br>
+!113 = !{!"0x16\00const_iterator\<u></u>0019\000\000\000\000", !5, !"_ZTS1CIiE", !"_ZTS1BIiE"} ; [ DW_TAG_typedef ] [const_iterator] [line 19, size 0, align 0, offset 0] [from _ZTS1BIiE]<br>
+!114 = !{!"0x2e\00end\00end\00_<u></u>ZN1DIiE3endEv\0029\000\000\<u></u>000\000\00259\001\0029", !5, !"_ZTS1DIiE", !110, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 29] [public] [end]<br>
+!115 = !{!116}<br>
+!116 = !{!"0x2f\00_Key\000\000", null, !22, null} ; [ DW_TAG_template_type_parameter ]<br>
+!117 = !{!"0x2\00C<int>\0017\008\008\<u></u>000\000\000", !5, null, null, !118, null, !123, !"_ZTS1CIiE"} ; [ DW_TAG_class_type ] [C<int>] [line 17, size 8, align 8, offset 0] [def] [from ]<br>
+!118 = !{!119}<br>
+!119 = !{!"0x2e\00C\00C\00\0020\000\<u></u>000\000\000\00259\001\0020", !5, !"_ZTS1CIiE", !120, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 20] [public] [C]<br>
+!120 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !121, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!121 = !{null, !122, !29}<br>
+!122 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1CIiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1CIiE]<br>
+!123 = !{!124}<br>
+!124 = !{!"0x2f\00_Tp\000\000", null, !22, null}  ; [ DW_TAG_template_type_parameter ]<br>
+!125 = !{!"0x2\00B<int>\0011\008\008\<u></u>000\000\000", !5, null, null, !126, null, !123, !"_ZTS1BIiE"} ; [ DW_TAG_class_type ] [B<int>] [line 11, size 8, align 8, offset 0] [def] [from ]<br>
+!126 = !{!127, !131}<br>
+!127 = !{!"0x2e\00operator*\<u></u>00operator*\00_ZN1BIiEdeEv\<u></u>0013\000\000\000\000\00259\<u></u>001\0013", !5, !"_ZTS1BIiE", !128, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 13] [public] [operator*]<br>
+!128 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !129, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!129 = !{!22, !130}<br>
+!130 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1BIiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1BIiE]<br>
+!131 = !{!"0x2e\00operator++\<u></u>00operator++\00_ZN1BIiEppEv\<u></u>0014\000\000\000\000\00259\<u></u>001\0014", !5, !"_ZTS1BIiE", !132, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 14] [public] [operator++]<br>
+!132 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !133, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!133 = !{null, !130}<br>
+!134 = !{!"0x2\00A<D<int *> >\001\00128\0064\000\000\000", !5, null, null, !135, null, !144, !"_ZTS1AI1DIPiEE"} ; [ DW_TAG_class_type ] [A<D<int *> >] [line 1, size 128, align 64, offset 0] [def] [from ]<br>
+!135 = !{!136, !138, !139}<br>
+!136 = !{!"0xd\00container\002\0064\<u></u>0064\000\000", !5, !"_ZTS1AI1DIPiEE", !137} ; [ DW_TAG_member ] [container] [line 2, size 64, align 64, offset 0] [from ]<br>
+!137 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !"_ZTS1DIPiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS1DIPiE]<br>
+!138 = !{!"0xd\00iter\003\008\008\<u></u>0064\000", !5, !"_ZTS1AI1DIPiEE", !16} ; [ DW_TAG_member ] [iter] [line 3, size 8, align 8, offset 64] [from iterator]<br>
+!139 = !{!"0x2e\00A\00A\00\005\000\<u></u>000\000\000\00259\001\005", !5, !"_ZTS1AI1DIPiEE", !140, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 5] [public] [A]<br>
+!140 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !141, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!141 = !{null, !142, !143, !16}<br>
+!142 = !{!"0xf\00\000\0064\0064\000\<u></u>001088\00", null, null, !"_ZTS1AI1DIPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [artificial] [from _ZTS1AI1DIPiEE]<br>
+!143 = !{!"0x10\00\000\000\000\000\<u></u>000", null, null, !"_ZTS1DIPiE"} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from _ZTS1DIPiE]<br>
+!144 = !{!145}<br>
+!145 = !{!"0x2f\00_Container\000\000"<u></u>, null, !"_ZTS1DIPiE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!146 = !{!147, !153, !179, !183, !186, !189, !192, !195, !199, !202, !205, !211, !216, !219}<br>
+!147 = !{!"0x2e\00addressof\<u></u>00addressof\00_<u></u>Z9addressofR1DIPiE\0046\000\<u></u>001\000\000\00256\001\0046", !5, !148, !149, null, %class.D.1.85* (%class.D.1.85*)* @_Z9addressofR1DIPiE, null, null, !151} ; [ DW_TAG_subprogram ] [line 46] [def] [addressof]<br>
+!148 = !{!"0x29", !5}                             ; [ DW_TAG_file_type ] [/test1.cpp]<br>
+!149 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !150, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!150 = !{!137, !143}<br>
+!151 = !{!152}<br>
+!152 = !{!"0x101\00p1\0016777262\000"<u></u>, !147, !148, !143} ; [ DW_TAG_arg_variable ] [p1] [line 46]<br>
+!153 = !{!"0x2e\<u></u>00buildRegisterClasses\<u></u>00buildRegisterClasses\00_<u></u>ZN1J20buildRegisterClassesERi\<u></u>0052\000\001\000\000\00256\<u></u>001\0052", !5, !"_ZTS1J", !49, null, void (%class.J.2.86*, i32*)* @_<u></u>ZN1J20buildRegisterClassesERi, null, !48, !154} ; [ DW_TAG_subprogram ] [line 52] [def] [buildRegisterClasses]<br>
+!154 = !{!155, !157, !158, !159, !160, !163, !164, !165, !167, !169, !172, !173, !174, !176, !178}<br>
+!155 = !{!"0x101\00this\0016777216\<u></u>001088", !153, null, !156} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!156 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !"_ZTS1J"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS1J]<br>
+!157 = !{!"0x101\00\0033554484\000", !153, !148, !51} ; [ DW_TAG_arg_variable ] [line 52]<br>
+!158 = !{!"0x100\00a\0053\000", !153, !148, !"_ZTS1G"} ; [ DW_TAG_auto_variable ] [a] [line 53]<br>
+!159 = !{!"0x100\00b\0054\000", !153, !148, !"_ZTS1DIS_IPiEE"} ; [ DW_TAG_auto_variable ] [b] [line 54]<br>
+!160 = !{!"0x100\00__range\000\0064", !161, null, !162} ; [ DW_TAG_auto_variable ] [__range] [line 0]<br>
+!161 = !{!"0xb\0055\003\000", !5, !153}           ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!162 = !{!"0x10\00\000\000\000\000\<u></u>000", null, null, !"_ZTS1G"} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from _ZTS1G]<br>
+!163 = !{!"0x100\00__begin\000\0064", !161, null, !"_ZTS1F"} ; [ DW_TAG_auto_variable ] [__begin] [line 0]<br>
+!164 = !{!"0x100\00__end\000\0064", !161, null, !"_ZTS1F"} ; [ DW_TAG_auto_variable ] [__end] [line 0]<br>
+!165 = !{!"0x100\00c\0055\000", !166, !148, !22}  ; [ DW_TAG_auto_variable ] [c] [line 55]<br>
+!166 = !{!"0xb\0055\003\001", !5, !161}           ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!167 = !{!"0x100\00d\0056\000", !168, !148, !"_ZTS1DIPiE"} ; [ DW_TAG_auto_variable ] [d] [line 56]<br>
+!168 = !{!"0xb\0055\0019\002", !5, !166}          ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!169 = !{!"0x100\00__range\000\0064", !170, null, !171} ; [ DW_TAG_auto_variable ] [__range] [line 0]<br>
+!170 = !{!"0xb\0057\005\003", !5, !168}           ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!171 = !{!"0x10\00\000\000\000\000\<u></u>000", null, null, !"_ZTS1DIS_IPiEE"} ; [ DW_TAG_reference_type ] [line 0, size 0, align 0, offset 0] [from _ZTS1DIS_IPiEE]<br>
+!172 = !{!"0x100\00__begin\000\0064", !170, null, !"_ZTS1BI1DIPiEE"} ; [ DW_TAG_auto_variable ] [__begin] [line 0]<br>
+!173 = !{!"0x100\00__end\000\0064", !170, null, !"_ZTS1BI1DIPiEE"} ; [ DW_TAG_auto_variable ] [__end] [line 0]<br>
+!174 = !{!"0x100\00e\0057\000", !175, !148, !"_ZTS1DIPiE"} ; [ DW_TAG_auto_variable ] [e] [line 57]<br>
+!175 = !{!"0xb\0057\005\004", !5, !170}           ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!176 = !{!"0x100\00f\0058\000", !177, !148, !"_ZTS1DIiE"} ; [ DW_TAG_auto_variable ] [f] [line 58]<br>
+!177 = !{!"0xb\0057\0026\005", !5, !175}          ; [ DW_TAG_lexical_block ] [/test1.cpp]<br>
+!178 = !{!"0x100\00g\0059\000", !177, !148, !"_ZTS1AI1DIPiEE"} ; [ DW_TAG_auto_variable ] [g] [line 59]<br>
+!179 = !{!"0x2e\00D\00D\00_ZN1DIS_<u></u>IPiEEC1Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIS_IPiEE", !73, null, null, null, !72, !180} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!180 = !{!181}<br>
+!181 = !{!"0x101\00this\0016777216\<u></u>001088", !179, null, !182} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!182 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !"_ZTS1DIS_IPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS1DIS_IPiEE]<br>
+!183 = !{!"0x2e\00D\00D\00_ZN1DIS_<u></u>IPiEEC2Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIS_IPiEE", !73, null, null, null, !72, !184} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!184 = !{!185}<br>
+!185 = !{!"0x101\00this\0016777216\<u></u>001088", !183, null, !182} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!186 = !{!"0x2e\00D\00D\00_<u></u>ZN1DIPiEC1Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIPiE", !10, null, null, null, !9, !187} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!187 = !{!188}<br>
+!188 = !{!"0x101\00this\0016777216\<u></u>001088", !186, null, !137} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!189 = !{!"0x2e\00D\00D\00_<u></u>ZN1DIPiEC2Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIPiE", !10, null, null, null, !9, !190} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!190 = !{!191}<br>
+!191 = !{!"0x101\00this\0016777216\<u></u>001088", !189, null, !137} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!192 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIS_IPiEE5beginEv\0028\000\<u></u>001\000\000\00256\001\0028", !5, !"_ZTS1DIS_IPiEE", !77, null, null, null, !76, !193} ; [ DW_TAG_subprogram ] [line 28] [def] [begin]<br>
+!193 = !{!194}<br>
+!194 = !{!"0x101\00this\0016777216\<u></u>001088", !192, null, !182} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!195 = !{!"0x2e\00D\00D\00_<u></u>ZN1DIiEC1Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIiE", !106, null, null, null, !105, !196} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!196 = !{!197}<br>
+!197 = !{!"0x101\00this\0016777216\<u></u>001088", !195, null, !198} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!198 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !"_ZTS1DIiE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS1DIiE]<br>
+!199 = !{!"0x2e\00D\00D\00_<u></u>ZN1DIiEC2Ev\0027\000\001\000\<u></u>000\00256\001\0027", !5, !"_ZTS1DIiE", !106, null, null, null, !105, !200} ; [ DW_TAG_subprogram ] [line 27] [def] [D]<br>
+!200 = !{!201}<br>
+!201 = !{!"0x101\00this\0016777216\<u></u>001088", !199, null, !198} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!202 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIPiE5beginEv\0028\000\001\<u></u>000\000\00256\001\0028", !5, !"_ZTS1DIPiE", !14, null, null, null, !13, !203} ; [ DW_TAG_subprogram ] [line 28] [def] [begin]<br>
+!203 = !{!204}<br>
+!204 = !{!"0x101\00this\0016777216\<u></u>001088", !202, null, !137} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!205 = !{!"0x2e\00A\00A\00_<u></u>ZN1AI1DIPiEEC1ERS2_1BIS1_E\<u></u>005\000\001\000\000\00256\001\<u></u>005", !5, !"_ZTS1AI1DIPiEE", !140, null, null, null, !139, !206} ; [ DW_TAG_subprogram ] [line 5] [def] [A]<br>
+!206 = !{!207, !209, !210}<br>
+!207 = !{!"0x101\00this\0016777216\<u></u>001088", !205, null, !208} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!208 = !{!"0xf\00\000\0064\0064\000\<u></u>000", null, null, !"_ZTS1AI1DIPiEE"} ; [ DW_TAG_pointer_type ] [line 0, size 64, align 64, offset 0] [from _ZTS1AI1DIPiEE]<br>
+!209 = !{!"0x101\00p1\0033554437\000"<u></u>, !205, !148, !143} ; [ DW_TAG_arg_variable ] [p1] [line 5]<br>
+!210 = !{!"0x101\00\0050331653\000", !205, !148, !16} ; [ DW_TAG_arg_variable ] [line 5]<br>
+!211 = !{!"0x2e\00A\00A\00_<u></u>ZN1AI1DIPiEEC2ERS2_1BIS1_E\<u></u>005\000\001\000\000\00256\001\<u></u>005", !5, !"_ZTS1AI1DIPiEE", !140, null, null, null, !139, !212} ; [ DW_TAG_subprogram ] [line 5] [def] [A]<br>
+!212 = !{!213, !214, !215}<br>
+!213 = !{!"0x101\00this\0016777216\<u></u>001088", !211, null, !208} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!214 = !{!"0x101\00p1\0033554437\000"<u></u>, !211, !148, !143} ; [ DW_TAG_arg_variable ] [p1] [line 5]<br>
+!215 = !{!"0x101\00\0050331653\000", !211, !148, !16} ; [ DW_TAG_arg_variable ] [line 5]<br>
+!216 = !{!"0x2e\00begin\00begin\00_<u></u>ZN1DIiE5beginEv\0028\000\001\<u></u>000\000\00256\001\0028", !5, !"_ZTS1DIiE", !110, null, null, null, !109, !217} ; [ DW_TAG_subprogram ] [line 28] [def] [begin]<br>
+!217 = !{!218}<br>
+!218 = !{!"0x101\00this\0016777216\<u></u>001088", !216, null, !198} ; [ DW_TAG_arg_variable ] [this] [line 0]<br>
+!219 = !{!"0x2e\00set_intersection<B<<u></u>int>, B<int *>, A<D<int *> > >\00set_intersection<B<int>, B<int *>, A<D<int *> > >\00_Z16set_<u></u>intersectionI1BIiES0_<u></u>IPiE1AI1DIS2_EEEvT_S8_T0_S9_<u></u>T1_\0048\000\001\000\000\<u></u>00256\001\0049", !5, !148, !220, null, null, !222, null, !226} ; [ DW_TAG_subprogram ] [line 48] [def] [scope 49] [set_intersection<B<int>, B<int *>, A<D<int *> > >]<br>
+!220 = !{!"0x15\00\000\000\000\000\<u></u>000\000", null, null, null, !221, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]<br>
+!221 = !{null, !"_ZTS1BIiE", !"_ZTS1BIiE", !"_ZTS1BIPiE", !"_ZTS1BIPiE", !"_ZTS1AI1DIPiEE"}<br>
+!222 = !{!223, !224, !225}<br>
+!223 = !{!"0x2f\00_InputIterator1\<u></u>000\000", null, !"_ZTS1BIiE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!224 = !{!"0x2f\00_InputIterator2\<u></u>000\000", null, !"_ZTS1BIPiE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!225 = !{!"0x2f\00_OutputIterator\<u></u>000\000", null, !"_ZTS1AI1DIPiEE", null} ; [ DW_TAG_template_type_parameter ]<br>
+!226 = !{!227, !228, !229, !230, !231}<br>
+!227 = !{!"0x101\00\0016777264\000", !219, !148, !"_ZTS1BIiE"} ; [ DW_TAG_arg_variable ] [line 48]<br>
+!228 = !{!"0x101\00p2\0033554480\000"<u></u>, !219, !148, !"_ZTS1BIiE"} ; [ DW_TAG_arg_variable ] [p2] [line 48]<br>
+!229 = !{!"0x101\00\0050331696\000", !219, !148, !"_ZTS1BIPiE"} ; [ DW_TAG_arg_variable ] [line 48]<br>
+!230 = !{!"0x101\00p4\0067108913\000"<u></u>, !219, !148, !"_ZTS1BIPiE"} ; [ DW_TAG_arg_variable ] [p4] [line 49]<br>
+!231 = !{!"0x101\00p5\0083886129\000"<u></u>, !219, !148, !"_ZTS1AI1DIPiEE"} ; [ DW_TAG_arg_variable ] [p5] [line 49]<br>
+!232 = !{i32 2, !"Dwarf Version", i32 2}<br>
+!233 = !{i32 2, !"Debug Info Version", i32 2}<br>
+!234 = !{i32 1, !"PIC Level", i32 2}<br>
+!235 = !{!"clang version 3.7.0 (trunk 226915) (llvm/trunk 226905)"}<br>
+!236 = !MDLocation(line: 55, column: 14, scope: !161)<br>
+!237 = !MDLocation(line: 27, column: 9, scope: !189, inlinedAt: !238)<br>
+!238 = distinct !MDLocation(line: 27, column: 24, scope: !186, inlinedAt: !239)<br>
+!239 = distinct !MDLocation(line: 56, column: 14, scope: !168)<br>
+!240 = !MDLocation(line: 27, column: 9, scope: !199, inlinedAt: !241)<br>
+!241 = distinct !MDLocation(line: 27, column: 24, scope: !195, inlinedAt: !242)<br>
+!242 = distinct !MDLocation(line: 58, column: 14, scope: !177)<br>
+!243 = !MDLocation(line: 57, column: 21, scope: !170)<br>
+!244 = !MDLocation(line: 60, column: 55, scope: !177)<br>
+!245 = !{!"0x101\00p5\0083886129\000"<u></u>, !219, !148, !"_ZTS1AI1DIPiEE", !246} ; [ DW_TAG_arg_variable ] [p5] [line 49]<br>
+!246 = distinct !MDLocation(line: 60, column: 7, scope: !177)<br>
+!247 = !{!"0x102\00147\000\008"}                  ; [ DW_TAG_expression ] [DW_OP_piece offset=0, size=8]<br>
+!248 = !MDLocation(line: 49, column: 59, scope: !219, inlinedAt: !246)<br>
+!249 = !MDLocation(line: 50, column: 3, scope: !219, inlinedAt: !246)<br>
+!250 = !MDLocation(line: 63, column: 1, scope: !153)<br>
<br>
<br>
______________________________<u></u>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>