[llvm] r320727 - [MC] Allow .file directives to be out-of-order

Paul Robinson via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 14 10:46:44 PST 2017


Author: probinson
Date: Thu Dec 14 10:46:43 2017
New Revision: 320727

URL: http://llvm.org/viewvc/llvm-project?rev=320727&view=rev
Log:
[MC] Allow .file directives to be out-of-order

Modified:
    llvm/trunk/lib/MC/MCDwarf.cpp
    llvm/trunk/test/MC/MachO/loc.s

Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=320727&r1=320726&r2=320727&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Thu Dec 14 10:46:43 2017
@@ -435,7 +435,8 @@ unsigned MCDwarfLineTableHeader::getFile
       return IterBool.first->second;
   }
   // Make space for this FileNumber in the MCDwarfFiles vector if needed.
-  MCDwarfFiles.resize(FileNumber + 1);
+  if (FileNumber >= MCDwarfFiles.size())
+    MCDwarfFiles.resize(FileNumber + 1);
 
   // Get the new MCDwarfFile slot for this FileNumber.
   MCDwarfFile &File = MCDwarfFiles[FileNumber];

Modified: llvm/trunk/test/MC/MachO/loc.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/loc.s?rev=320727&r1=320726&r2=320727&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/loc.s (original)
+++ llvm/trunk/test/MC/MachO/loc.s Thu Dec 14 10:46:43 2017
@@ -1,7 +1,7 @@
 // RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | llvm-readobj -r -s -sd | FileCheck %s
-
-        .file	1 "foo"
-	.loc	1 64 0
+        .file   2 "foo"
+        .file   1 "bar"
+        .loc    2 64 0
         nop
 
 // CHECK: Section {
@@ -9,10 +9,10 @@
 // CHECK:     Name: __debug_line (5F 5F 64 65 62 75 67 5F 6C 69 6E 65 00 00 00 00)
 // CHECK:     Segment: __DWARF (5F 5F 44 57 41 52 46 00 00 00 00 00 00 00 00 00)
 // CHECK:     Address: 0x1
-// CHECK:     Size: 0x33
+// CHECK:     Size: 0x3C
 // CHECK:     Offset: 237
 // CHECK:     Alignment: 0
-// CHECK:     RelocationOffset: 0x120
+// CHECK:     RelocationOffset: 0x12C
 // CHECK:     RelocationCount: 1
 // CHECK:     Type: 0x0
 // CHECK:     Attributes [ (0x20000)
@@ -21,15 +21,15 @@
 // CHECK:     Reserved1: 0x0
 // CHECK:     Reserved2: 0x0
 // CHECK:     SectionData (
-// CHECK:       0000: 2F000000 02001A00 00000101 FB0E0D00  |/...............|
-// CHECK:       0010: 01010101 00000001 00000100 666F6F00  |............foo.|
-// CHECK:       0020: 00000000 00050200 00000003 3F010201  |............?...|
-// CHECK:       0030: 000101                               |...|
+// CHECK:       0000: 38000000 02002100 00000101 FB0E0D00  |8.....!.........|
+// CHECK:       0010: 01010101 00000001 00000100 62617200  |............bar.|
+// CHECK:       0020: 00000066 6F6F0000 00000004 02000502  |...foo..........|
+// CHECK:       0030: 00000000 033F0102 01000101           |.....?......|
 // CHECK:     )
 // CHECK:   }
 // CHECK: ]
 // CHECK: Relocations [
 // CHECK:   Section __debug_line {
-// CHECK:     0x27 0 2 0 GENERIC_RELOC_VANILLA 0 __text
+// CHECK:     0x30 0 2 0 GENERIC_RELOC_VANILLA 0 __text
 // CHECK:   }
 // CHECK: ]




More information about the llvm-commits mailing list