Add support for DWARF line number table entries for values in the instruction
stream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182712 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/MCObjectStreamer.cpp b/lib/MC/MCObjectStreamer.cpp
index d21ce8d..2d7657c 100644
--- a/lib/MC/MCObjectStreamer.cpp
+++ b/lib/MC/MCObjectStreamer.cpp
@@ -103,6 +103,8 @@
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())) {
diff --git a/test/MC/ELF/debug-line.s b/test/MC/ELF/debug-line.s
index 75e050e..6766f10 100644
--- a/test/MC/ELF/debug-line.s
+++ b/test/MC/ELF/debug-line.s
@@ -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