mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-29 22:30:33 +00:00
Fixed a bug in the code to create a dwarf file and directory table entires when
it is separating the directory part from the basename of the FileName. Noticed that this: .file 1 "dir/foo" when assembled got the two parts switched. Using the Mac OS X dwarfdump tool it can be seen easily: % dwarfdump -a a.out include_directories[ 1] = 'foo' Dir Mod Time File Len File Name ---- ---------- ---------- --------------------------- file_names[ 1] 1 0x00000000 0x00000000 dir ... Which should be: ... include_directories[ 1] = 'dir' Dir Mod Time File Len File Name ---- ---------- ---------- --------------------------- file_names[ 1] 1 0x00000000 0x00000000 foo llvm-svn: 143521
This commit is contained in:
parent
577b0f181e
commit
b5dc88b394
@ -273,8 +273,10 @@ unsigned MCContext::GetDwarfFile(StringRef Directory, StringRef FileName,
|
||||
// Separate the directory part from the basename of the FileName.
|
||||
std::pair<StringRef, StringRef> Slash = FileName.rsplit('/');
|
||||
Directory = Slash.second;
|
||||
if (!Directory.empty())
|
||||
FileName = Slash.first;
|
||||
if (!Directory.empty()) {
|
||||
Directory = Slash.first;
|
||||
FileName = Slash.second;
|
||||
}
|
||||
}
|
||||
|
||||
// Find or make a entry in the MCDwarfDirs vector for this Directory.
|
||||
|
22
test/MC/MachO/file.s
Normal file
22
test/MC/MachO/file.s
Normal file
@ -0,0 +1,22 @@
|
||||
// RUN: llvm-mc -triple i386-apple-darwin9 %s -filetype=obj -o - | macho-dump --dump-section-data | FileCheck %s
|
||||
|
||||
.file 1 "dir/foo"
|
||||
nop
|
||||
|
||||
// CHECK: ('_section_data', '90')
|
||||
// CHECK-NEXT: # Section 1
|
||||
// CHECK-NEXT: (('section_name', '__debug_line\x00\x00\x00\x00')
|
||||
// CHECK-NEXT: ('segment_name', '__DWARF\x00\x00\x00\x00\x00\x00\x00\x00\x00')
|
||||
// CHECK-NEXT: ('address', 1)
|
||||
// CHECK-NEXT: ('size', 45)
|
||||
// CHECK-NEXT: ('offset', 221)
|
||||
// CHECK-NEXT: ('alignment', 0)
|
||||
// CHECK-NEXT: ('reloc_offset', 0)
|
||||
// CHECK-NEXT: ('num_reloc', 0)
|
||||
// CHECK-NEXT: ('flags', 0x2000000)
|
||||
// CHECK-NEXT: ('reserved1', 0)
|
||||
// CHECK-NEXT: ('reserved2', 0)
|
||||
// CHECK-NEXT: ),
|
||||
// CHECK-NEXT: ('_relocations', [
|
||||
// CHECK-NEXT: ])
|
||||
// CHECK-NEXT: ('_section_data', '29000000 02001e00 00000101 fb0e0d00 01010101 00000001 00000164 69720000 666f6f00 01000000 02000001 01')
|
Loading…
Reference in New Issue
Block a user