Fix a bug when pretty-printing DW_OP_deref.
authorAdrian Prantl <aprantl@apple.com>
Fri, 5 Dec 2014 18:19:38 +0000 (18:19 +0000)
committerAdrian Prantl <aprantl@apple.com>
Fri, 5 Dec 2014 18:19:38 +0000 (18:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@223493 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/DebugInfo.cpp
test/DebugInfo/X86/block-capture.ll
test/DebugInfo/X86/op_deref.ll

index bf3bb8adb0aa164dc0b5f53c02c8f20318bd469b..c6e4c872c1bfa821a53eac2c846405340c97ffb2 100644 (file)
@@ -1415,6 +1415,9 @@ void DIExpression::printInternal(raw_ostream &OS) const {
       OS << " offset=" << Offset << ", size=" << Size;
       break;
     }
       OS << " offset=" << Offset << ", size=" << Size;
       break;
     }
+    case DW_OP_deref:
+      // No arguments.
+      break;
     default:
       // Else bail out early. This may be a line table entry.
       OS << "Unknown]";
     default:
       // Else bail out early. This may be a line table entry.
       OS << "Unknown]";
index 04a50639ae2ccc32268430cc2d253c62880749f2..b04fa29b884c7608039d09d89319eba33f19f37c 100644 (file)
@@ -124,7 +124,7 @@ attributes #3 = { nounwind }
 !66 = metadata !{i32 2, i32 20, metadata !8, null}
 !67 = metadata !{i32 2, i32 21, metadata !8, null}
 !68 = metadata !{metadata !"0x100\00block\002\000", metadata !8, metadata !5, metadata !25} ; [ DW_TAG_auto_variable ] [block] [line 2]
 !66 = metadata !{i32 2, i32 20, metadata !8, null}
 !67 = metadata !{i32 2, i32 21, metadata !8, null}
 !68 = metadata !{metadata !"0x100\00block\002\000", metadata !8, metadata !5, metadata !25} ; [ DW_TAG_auto_variable ] [block] [line 2]
-!69 = metadata !{metadata !"0x102\006\0034\0032"} ; [ DW_TAG_expression ] [DW_OP_derefUnknown]
+!69 = metadata !{metadata !"0x102\006\0034\0032"} ; [ DW_TAG_expression ] [DW_OP_deref]
 !70 = metadata !{i32 2, i32 9, metadata !8, null}
 !71 = metadata !{i32 2, i32 23, metadata !72, null}
 !72 = metadata !{metadata !"0xb\002\0021\000", metadata !1, metadata !8} ; [ DW_TAG_lexical_block ] [/foo.m]
 !70 = metadata !{i32 2, i32 9, metadata !8, null}
 !71 = metadata !{i32 2, i32 23, metadata !72, null}
 !72 = metadata !{metadata !"0xb\002\0021\000", metadata !1, metadata !8} ; [ DW_TAG_lexical_block ] [/foo.m]
index 18c4fc15da7c6adc553535d5c48f278c9e82c715..ac90448012a946e3cbb3b98c30b025ea208b7f86 100644 (file)
@@ -23,6 +23,9 @@
 ; ASM-CHECK: DEBUG_VALUE: vla <- RCX
 ; ASM-CHECK: DW_OP_breg2
 
 ; ASM-CHECK: DEBUG_VALUE: vla <- RCX
 ; ASM-CHECK: DW_OP_breg2
 
+; RUN: llvm-as %s -o - | llvm-dis - | FileCheck %s --check-prefix=PRETTY-PRINT
+; PRETTY-PRINT: [ DW_TAG_expression ] [DW_OP_deref]
+
 define void @testVLAwithSize(i32 %s) nounwind uwtable ssp {
 entry:
   %s.addr = alloca i32, align 4
 define void @testVLAwithSize(i32 %s) nounwind uwtable ssp {
 entry:
   %s.addr = alloca i32, align 4