From 1efcc4200703b1fbcf7b4e9d0f4da3b898c34de5 Mon Sep 17 00:00:00 2001 From: Paul Robinson Date: Thu, 14 Dec 2017 18:46:43 +0000 Subject: [PATCH] [MC] Allow .file directives to be out-of-order git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320727 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/MC/MCDwarf.cpp | 3 ++- test/MC/MachO/loc.s | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp index bda0ec14599..9e5d9ff73c7 100644 --- a/lib/MC/MCDwarf.cpp +++ b/lib/MC/MCDwarf.cpp @@ -435,7 +435,8 @@ unsigned MCDwarfLineTableHeader::getFile(StringRef &Directory, 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]; diff --git a/test/MC/MachO/loc.s b/test/MC/MachO/loc.s index c1a2edd6090..b3f1c2a875e 100644 --- a/test/MC/MachO/loc.s +++ b/test/MC/MachO/loc.s @@ -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: ] -- 2.50.0