Add support for DWARF line number table entries for values in the instruction
authorCameron Zwarich <zwarich@apple.com>
Sat, 25 May 2013 21:56:53 +0000 (21:56 +0000)
committerCameron Zwarich <zwarich@apple.com>
Sat, 25 May 2013 21:56:53 +0000 (21:56 +0000)
stream.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182712 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/MCObjectStreamer.cpp
test/MC/ELF/debug-line.s

index d21ce8d1a117afc15661353600879e2841f25142..2d7657c5919febb8ac7e0b05d9f26840fca66a54 100644 (file)
@@ -103,6 +103,8 @@ void MCObjectStreamer::EmitValueImpl(const MCExpr *Value, unsigned Size,
   assert(AddrSpace == 0 && "Address space must be 0!");
   MCDataFragment *DF = getOrCreateDataFragment();
 
+  MCLineEntry::Make(this, getCurrentSection().first);
+
   // Avoid fixups when possible.
   int64_t AbsValue;
   if (AddValueSymbols(Value)->EvaluateAsAbsolute(AbsValue, getAssembler())) {
index 75e050e9da1c319662722605098e239a504ffa68..6766f1042ba278ad00caac37c59ab97a30d36419 100644 (file)
@@ -8,17 +8,18 @@
 // CHECK-NEXT:     Flags [
 // CHECK-NEXT:     ]
 // CHECK-NEXT:     Address: 0x0
-// CHECK-NEXT:     Offset: 0x44
-// CHECK-NEXT:     Size: 55
+// CHECK-NEXT:     Offset: 0x48
+// CHECK-NEXT:     Size: 72
 // CHECK-NEXT:     Link: 0
 // CHECK-NEXT:     Info: 0
 // CHECK-NEXT:     AddressAlignment: 1
 // CHECK-NEXT:     EntrySize: 0
 // CHECK-NEXT:     SectionData (
-// CHECK-NEXT:       0000: 33000000 02001C00 00000101 FB0E0D00
+// CHECK-NEXT:       0000: 44000000 02001C00 00000101 FB0E0D00
 // CHECK-NEXT:       0010: 01010101 00000001 00000100 666F6F2E
 // CHECK-NEXT:       0020: 63000000 00000009 02000000 00000000
-// CHECK-NEXT:       0030: 00150204 000101
+// CHECK-NEXT:       0030: 00150205 00010100 09020000 00000000
+// CHECK-NEXT:       0040: 00001602 43000101
 // CHECK-NEXT:     )
 // CHECK-NEXT:   }
 
@@ -28,3 +29,8 @@
        .file 1 "foo.c"
        .loc 1 4 0
        subq    $8, %rsp
+
+// Test that .loc works with values, not just instructions.
+
+       .loc 1 5 0
+       .byte 0xc3