summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h8
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFContext.cpp4
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp56
-rw-r--r--llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp11
-rw-r--r--llvm/test/CodeGen/BPF/dwarfdump.ll2
-rw-r--r--llvm/test/CodeGen/Generic/dwarf-md5.ll8
-rw-r--r--llvm/test/CodeGen/X86/dwarf-comp-dir.ll2
-rw-r--r--llvm/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll2
-rw-r--r--llvm/test/DebugInfo/Generic/lto-comp-dir.ll4
-rw-r--r--llvm/test/DebugInfo/X86/dwarfdump-header-64.s8
-rw-r--r--llvm/test/DebugInfo/X86/dwarfdump-header.s26
-rw-r--r--llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s8
-rw-r--r--llvm/test/DebugInfo/X86/dwarfdump-line-only.s8
-rw-r--r--llvm/test/DebugInfo/X86/generate-odr-hash.ll8
-rw-r--r--llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll8
-rw-r--r--llvm/test/DebugInfo/debugmacinfo.test6
-rw-r--r--llvm/test/Linker/subprogram-linkonce-weak.ll8
-rw-r--r--llvm/test/MC/ARM/dwarf-asm-multiple-sections.s4
-rw-r--r--llvm/test/MC/ELF/debug-md5.s10
-rw-r--r--llvm/test/MC/MachO/gen-dwarf-cpp.s10
-rw-r--r--llvm/test/MC/MachO/gen-dwarf-macro-cpp.s4
-rw-r--r--llvm/test/MC/MachO/gen-dwarf.s2
-rw-r--r--llvm/test/tools/dsymutil/X86/basic-linking-x86.test6
-rw-r--r--llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test6
-rw-r--r--llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test6
25 files changed, 124 insertions, 101 deletions
diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
index 71e4c455dd2..182afcdf36d 100644
--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
+++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
@@ -31,7 +31,7 @@ public:
struct FileNameEntry {
FileNameEntry() = default;
- StringRef Name;
+ DWARFFormValue Name;
uint64_t DirIdx = 0;
uint64_t ModTime = 0;
uint64_t Length = 0;
@@ -71,7 +71,7 @@ public:
/// For v5, whether filename entries provide an MD5 checksum.
bool HasMD5;
std::vector<uint8_t> StandardOpcodeLengths;
- std::vector<StringRef> IncludeDirectories;
+ std::vector<DWARFFormValue> IncludeDirectories;
std::vector<FileNameEntry> FileNames;
const DWARFFormParams getFormParams() const { return FormParams; }
@@ -99,7 +99,7 @@ public:
}
void clear();
- void dump(raw_ostream &OS) const;
+ void dump(raw_ostream &OS, DIDumpOptions DumpOptions) const;
bool parse(const DWARFDataExtractor &DebugLineData, uint32_t *OffsetPtr,
const DWARFContext &Ctx, const DWARFUnit *U = nullptr);
};
@@ -219,7 +219,7 @@ public:
DILineInfoSpecifier::FileLineInfoKind Kind,
DILineInfo &Result) const;
- void dump(raw_ostream &OS) const;
+ void dump(raw_ostream &OS, DIDumpOptions DumpOptions) const;
void clear();
/// Parse prologue and all rows.
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
index 761f2b5d800..ef097265e04 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
@@ -401,7 +401,7 @@ void DWARFContext::dump(
LineTable.parse(LineData, &Offset, *this, U, &OS);
} else {
LineTable.parse(LineData, &Offset, *this, U);
- LineTable.dump(OS);
+ LineTable.dump(OS, DIDumpOptions());
}
// Check for unparseable prologue, to avoid infinite loops.
if (OldOffset == Offset)
@@ -426,7 +426,7 @@ void DWARFContext::dump(
if (!LineTable.Prologue.parse(LineData, &Offset, *this, U))
break;
if (!DumpOffset || OldOffset == *DumpOffset)
- LineTable.dump(OS);
+ LineTable.dump(OS, DumpOpts);
}
}
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
index 0bc56aed07c..38272b6afdf 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
@@ -54,7 +54,8 @@ void DWARFDebugLine::Prologue::clear() {
FileNames.clear();
}
-void DWARFDebugLine::Prologue::dump(raw_ostream &OS) const {
+void DWARFDebugLine::Prologue::dump(raw_ostream &OS,
+ DIDumpOptions DumpOptions) const {
OS << "Line table prologue:\n"
<< format(" total_length: 0x%8.8" PRIx64 "\n", TotalLength)
<< format(" version: %u\n", getVersion());
@@ -76,9 +77,11 @@ void DWARFDebugLine::Prologue::dump(raw_ostream &OS) const {
if (!IncludeDirectories.empty()) {
// DWARF v5 starts directory indexes at 0.
uint32_t DirBase = getVersion() >= 5 ? 0 : 1;
- for (uint32_t I = 0; I != IncludeDirectories.size(); ++I)
- OS << format("include_directories[%3u] = '", I + DirBase)
- << IncludeDirectories[I] << "'\n";
+ for (uint32_t I = 0; I != IncludeDirectories.size(); ++I) {
+ OS << format("include_directories[%3u] = ", I + DirBase);
+ IncludeDirectories[I].dump(OS, DumpOptions);
+ OS << '\n';
+ }
}
if (!FileNames.empty()) {
@@ -98,7 +101,9 @@ void DWARFDebugLine::Prologue::dump(raw_ostream &OS) const {
else
OS << format("0x%8.8" PRIx64 " 0x%8.8" PRIx64, FileEntry.ModTime,
FileEntry.Length);
- OS << ' ' << FileEntry.Name << '\n';
+ OS << ' ';
+ FileEntry.Name.dump(OS, DumpOptions);
+ OS << '\n';
}
}
}
@@ -107,13 +112,15 @@ void DWARFDebugLine::Prologue::dump(raw_ostream &OS) const {
static void
parseV2DirFileTables(const DWARFDataExtractor &DebugLineData,
uint32_t *OffsetPtr, uint64_t EndPrologueOffset,
- std::vector<StringRef> &IncludeDirectories,
+ std::vector<DWARFFormValue> &IncludeDirectories,
std::vector<DWARFDebugLine::FileNameEntry> &FileNames) {
while (*OffsetPtr < EndPrologueOffset) {
StringRef S = DebugLineData.getCStrRef(OffsetPtr);
if (S.empty())
break;
- IncludeDirectories.push_back(S);
+ DWARFFormValue Dir(dwarf::DW_FORM_string);
+ Dir.setPValue(S.data());
+ IncludeDirectories.push_back(Dir);
}
while (*OffsetPtr < EndPrologueOffset) {
@@ -121,7 +128,8 @@ parseV2DirFileTables(const DWARFDataExtractor &DebugLineData,
if (Name.empty())
break;
DWARFDebugLine::FileNameEntry FileEntry;
- FileEntry.Name = Name;
+ FileEntry.Name.setForm(dwarf::DW_FORM_string);
+ FileEntry.Name.setPValue(Name.data());
FileEntry.DirIdx = DebugLineData.getULEB128(OffsetPtr);
FileEntry.ModTime = DebugLineData.getULEB128(OffsetPtr);
FileEntry.Length = DebugLineData.getULEB128(OffsetPtr);
@@ -159,7 +167,7 @@ parseV5DirFileTables(const DWARFDataExtractor &DebugLineData,
uint32_t *OffsetPtr, uint64_t EndPrologueOffset,
const DWARFFormParams &FormParams, const DWARFContext &Ctx,
const DWARFUnit *U, bool &HasMD5,
- std::vector<StringRef> &IncludeDirectories,
+ std::vector<DWARFFormValue> &IncludeDirectories,
std::vector<DWARFDebugLine::FileNameEntry> &FileNames) {
// Get the directory entry description.
ContentDescriptors DirDescriptors =
@@ -178,7 +186,7 @@ parseV5DirFileTables(const DWARFDataExtractor &DebugLineData,
case DW_LNCT_path:
if (!Value.extractValue(DebugLineData, OffsetPtr, FormParams, &Ctx, U))
return false;
- IncludeDirectories.push_back(Value.getAsCString().getValue());
+ IncludeDirectories.push_back(Value);
break;
default:
if (!Value.skipValue(DebugLineData, OffsetPtr, FormParams))
@@ -205,7 +213,7 @@ parseV5DirFileTables(const DWARFDataExtractor &DebugLineData,
return false;
switch (Descriptor.Type) {
case DW_LNCT_path:
- FileEntry.Name = Value.getAsCString().getValue();
+ FileEntry.Name = Value;
break;
case DW_LNCT_directory_index:
FileEntry.DirIdx = Value.getAsUnsignedConstant().getValue();
@@ -346,8 +354,9 @@ void DWARFDebugLine::Sequence::reset() {
DWARFDebugLine::LineTable::LineTable() { clear(); }
-void DWARFDebugLine::LineTable::dump(raw_ostream &OS) const {
- Prologue.dump(OS);
+void DWARFDebugLine::LineTable::dump(raw_ostream &OS,
+ DIDumpOptions DumpOptions) const {
+ Prologue.dump(OS, DumpOptions);
OS << '\n';
if (!Rows.empty()) {
@@ -430,8 +439,12 @@ bool DWARFDebugLine::LineTable::parse(DWARFDataExtractor &DebugLineData,
return false;
}
- if (OS)
- Prologue.dump(*OS);
+ if (OS) {
+ // The presence of OS signals verbose dumping.
+ DIDumpOptions DumpOptions;
+ DumpOptions.Verbose = true;
+ Prologue.dump(*OS, DumpOptions);
+ }
const uint32_t EndOffset =
DebugLineOffset + Prologue.TotalLength + Prologue.sizeofTotalLength();
@@ -531,14 +544,15 @@ bool DWARFDebugLine::LineTable::parse(DWARFDataExtractor &DebugLineData,
// the file register of the state machine.
{
FileNameEntry FileEntry;
- FileEntry.Name = DebugLineData.getCStr(OffsetPtr);
+ const char *Name = DebugLineData.getCStr(OffsetPtr);
+ FileEntry.Name.setForm(dwarf::DW_FORM_string);
+ FileEntry.Name.setPValue(Name);
FileEntry.DirIdx = DebugLineData.getULEB128(OffsetPtr);
FileEntry.ModTime = DebugLineData.getULEB128(OffsetPtr);
FileEntry.Length = DebugLineData.getULEB128(OffsetPtr);
Prologue.FileNames.push_back(FileEntry);
if (OS)
- *OS << " (" << FileEntry.Name.str()
- << ", dir=" << FileEntry.DirIdx << ", mod_time="
+ *OS << " (" << Name << ", dir=" << FileEntry.DirIdx << ", mod_time="
<< format("(0x%16.16" PRIx64 ")", FileEntry.ModTime)
<< ", length=" << FileEntry.Length << ")";
}
@@ -902,7 +916,7 @@ bool DWARFDebugLine::LineTable::getFileNameByIndex(uint64_t FileIndex,
if (Kind == FileLineInfoKind::None || !hasFileAtIndex(FileIndex))
return false;
const FileNameEntry &Entry = Prologue.FileNames[FileIndex - 1];
- StringRef FileName = Entry.Name;
+ StringRef FileName = Entry.Name.getAsCString().getValue();
if (Kind != FileLineInfoKind::AbsoluteFilePath ||
sys::path::is_absolute(FileName)) {
Result = FileName;
@@ -915,7 +929,9 @@ bool DWARFDebugLine::LineTable::getFileNameByIndex(uint64_t FileIndex,
// Be defensive about the contents of Entry.
if (IncludeDirIndex > 0 &&
IncludeDirIndex <= Prologue.IncludeDirectories.size())
- IncludeDir = Prologue.IncludeDirectories[IncludeDirIndex - 1];
+ IncludeDir = Prologue.IncludeDirectories[IncludeDirIndex - 1]
+ .getAsCString()
+ .getValue();
// We may still need to append compilation directory of compile unit.
// We know that FileName is not absolute, the only way to have an
diff --git a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
index 089df4cdc97..b2adab76b6c 100644
--- a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
+++ b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
@@ -284,10 +284,10 @@ bool DWARFFormValue::isFormClass(DWARFFormValue::FormClass FC) const {
}
// In DWARF3 DW_FORM_data4 and DW_FORM_data8 served also as a section offset.
// Don't check for DWARF version here, as some producers may still do this
- // by mistake. Also accept DW_FORM_strp since this is .debug_str section
- // offset.
+ // by mistake. Also accept DW_FORM_[line_]strp since these are
+ // .debug_[line_]str section offsets.
return (Form == DW_FORM_data4 || Form == DW_FORM_data8 ||
- Form == DW_FORM_strp) &&
+ Form == DW_FORM_strp || Form == DW_FORM_line_strp) &&
FC == FC_SectionOffset;
}
@@ -513,6 +513,11 @@ void DWARFFormValue::dump(raw_ostream &OS, DIDumpOptions DumpOpts) const {
OS << format(" .debug_str[0x%8.8x] = ", (uint32_t)UValue);
dumpString(OS);
break;
+ case DW_FORM_line_strp:
+ if (DumpOpts.Verbose)
+ OS << format(" .debug_line_str[0x%8.8x] = ", (uint32_t)UValue);
+ dumpString(OS);
+ break;
case DW_FORM_strx:
case DW_FORM_strx1:
case DW_FORM_strx2:
diff --git a/llvm/test/CodeGen/BPF/dwarfdump.ll b/llvm/test/CodeGen/BPF/dwarfdump.ll
index 702cb28423f..592501196b7 100644
--- a/llvm/test/CodeGen/BPF/dwarfdump.ll
+++ b/llvm/test/CodeGen/BPF/dwarfdump.ll
@@ -59,6 +59,6 @@ attributes #1 = { nounwind readnone }
!26 = !DILocation(line: 7, column: 17, scope: !2)
!27 = !DILocation(line: 9, column: 9, scope: !2)
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 testprog.c
+; CHECK: file_names[ 1] 0 0x00000000 0x00000000 "testprog.c"
; CHECK: 0x0000000000000000 2
; CHECK: 0x0000000000000020 7
diff --git a/llvm/test/CodeGen/Generic/dwarf-md5.ll b/llvm/test/CodeGen/Generic/dwarf-md5.ll
index efdb76997db..6793bf1cfb2 100644
--- a/llvm/test/CodeGen/Generic/dwarf-md5.ll
+++ b/llvm/test/CodeGen/Generic/dwarf-md5.ll
@@ -17,12 +17,12 @@
; ASM: .file 2 ".{{/|\\\\}}t2.h" md5 "22222222222222222222222222222222"
; OBJ-4: Dir Mod Time File Len File Name
-; OBJ-4: file_names[ 1] 1 0x00000000 0x00000000 t1.h
-; OBJ-4: file_names[ 2] 1 0x00000000 0x00000000 t2.h
+; OBJ-4: file_names[ 1] 1 0x00000000 0x00000000 "t1.h"
+; OBJ-4: file_names[ 2] 1 0x00000000 0x00000000 "t2.h"
; OBJ-5: Dir MD5 Checksum File Name
-; OBJ-5: file_names[ 1] 1 11111111111111111111111111111111 t1.h
-; OBJ-5: file_names[ 2] 1 22222222222222222222222222222222 t2.h
+; OBJ-5: file_names[ 1] 1 11111111111111111111111111111111 "t1.h"
+; OBJ-5: file_names[ 2] 1 22222222222222222222222222222222 "t2.h"
; ModuleID = 't.c'
source_filename = "t.c"
diff --git a/llvm/test/CodeGen/X86/dwarf-comp-dir.ll b/llvm/test/CodeGen/X86/dwarf-comp-dir.ll
index 8c4b8fdc360..8d9f7c0e8d0 100644
--- a/llvm/test/CodeGen/X86/dwarf-comp-dir.ll
+++ b/llvm/test/CodeGen/X86/dwarf-comp-dir.ll
@@ -17,5 +17,5 @@ target triple = "x86_64-unknown-linux-gnu"
; The important part of the following check is that dir = #0.
; Dir Mod Time File Len File Name
; ---- ---------- ---------- ---------------------------
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 empty.c
+; CHECK: file_names[ 1] 0 0x00000000 0x00000000 "empty.c"
!5 = !{i32 1, !"Debug Info Version", i32 3}
diff --git a/llvm/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll b/llvm/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll
index bc8548f953c..c6715cde2f8 100644
--- a/llvm/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll
+++ b/llvm/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll
@@ -13,7 +13,7 @@
; }
; CHECK-NOT: failed to compute relocation
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 dwarfdump-relocs.cl
+; CHECK: file_names[ 1] 0 0x00000000 0x00000000 "dwarfdump-relocs.cl"
declare void @llvm.dbg.declare(metadata, metadata, metadata)
diff --git a/llvm/test/DebugInfo/Generic/lto-comp-dir.ll b/llvm/test/DebugInfo/Generic/lto-comp-dir.ll
index 35a494f2e58..b6d1bf46359 100644
--- a/llvm/test/DebugInfo/Generic/lto-comp-dir.ll
+++ b/llvm/test/DebugInfo/Generic/lto-comp-dir.ll
@@ -11,13 +11,13 @@
; CHECK-NEXT: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NOT: include_directories
-; CHECK: file_names[ 1] 0 {{.*}} a.cpp
+; CHECK: file_names[ 1] 0 {{.*}} "a.cpp"
; CHECK-NOT: file_names
; CHECK: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NOT: include_directories
-; CHECK: file_names[ 1] 0 {{.*}} b.cpp
+; CHECK: file_names[ 1] 0 {{.*}} "b.cpp"
; CHECK-NOT: file_names
; However, if a single line table is emitted and shared between CUs, the
diff --git a/llvm/test/DebugInfo/X86/dwarfdump-header-64.s b/llvm/test/DebugInfo/X86/dwarfdump-header-64.s
index f9aa51c682e..3b047cd641d 100644
--- a/llvm/test/DebugInfo/X86/dwarfdump-header-64.s
+++ b/llvm/test/DebugInfo/X86/dwarfdump-header-64.s
@@ -141,9 +141,9 @@ LH_5_end:
# CHECK: seg_select_size: 0
# CHECK: prologue_length: 0x00000044
# CHECK: max_ops_per_inst: 1
-# CHECK: include_directories[ 0] = 'Directory5a'
-# CHECK: include_directories[ 1] = 'Directory5b'
+# CHECK: include_directories[ 0] = .debug_str[0x00000028] = "Directory5a"
+# CHECK: include_directories[ 1] = .debug_str[0x00000034] = "Directory5b"
# CHECK-NOT: include_directories
-# CHECK: file_names[ 1] 0 0x00000051 0x00000052 File5a{{$}}
-# CHECK: file_names[ 2] 1 0x00000053 0x00000054 File5b{{$}}
+# CHECK: file_names[ 1] 0 0x00000051 0x00000052 "File5a"
+# CHECK: file_names[ 2] 1 0x00000053 0x00000054 "File5b"
# CHECK-NOT: file_names
diff --git a/llvm/test/DebugInfo/X86/dwarfdump-header.s b/llvm/test/DebugInfo/X86/dwarfdump-header.s
index 6a9c6012232..350beb37481 100644
--- a/llvm/test/DebugInfo/X86/dwarfdump-header.s
+++ b/llvm/test/DebugInfo/X86/dwarfdump-header.s
@@ -255,11 +255,11 @@ LH_4_end:
# CHECK-NOT: address_size
# CHECK-NOT: seg_select_size
# CHECK: max_ops_per_inst: 1
-# CHECK: include_directories[ 1] = 'Directory4a'
-# CHECK: include_directories[ 2] = 'Directory4b'
+# CHECK: include_directories[ 1] = "Directory4a"
+# CHECK: include_directories[ 2] = "Directory4b"
# CHECK-NOT: include_directories
-# CHECK: file_names[ 1] 1 0x00000041 0x00000042 File4a{{$}}
-# CHECK: file_names[ 2] 0 0x00000043 0x00000044 File4b{{$}}
+# CHECK: file_names[ 1] 1 0x00000041 0x00000042 "File4a"
+# CHECK: file_names[ 2] 0 0x00000043 0x00000044 "File4b"
# CHECK-NOT: file_names
# DWARF v5 line-table header.
@@ -324,12 +324,14 @@ LH_5_end:
# CHECK: address_size: 8
# CHECK: seg_select_size: 0
# CHECK: max_ops_per_inst: 1
-# CHECK: include_directories[ 0] = 'Directory5a'
-# CHECK: include_directories[ 1] = 'Directory5b'
+# Mixing .debug_str (here) with .debug_line_str (in file_names) is not
+# something a producer would do, but both are legal and we want to test them.
+# CHECK: include_directories[ 0] = .debug_str[0x00000045] = "Directory5a"
+# CHECK: include_directories[ 1] = .debug_str[0x00000051] = "Directory5b"
# CHECK-NOT: include_directories
# CHECK: MD5 Checksum
-# CHECK: file_names[ 1] 0 00112233445566778899aabbccddeeff File5a{{$}}
-# CHECK: file_names[ 2] 1 ffeeddccbbaa99887766554433221100 File5b{{$}}
+# CHECK: file_names[ 1] 0 00112233445566778899aabbccddeeff .debug_line_str[0x00000000] = "File5a"
+# CHECK: file_names[ 2] 1 ffeeddccbbaa99887766554433221100 .debug_line_str[0x00000007] = "File5b"
# CHECK-NOT: file_names
.section .debug_line_str,"MS",@progbits,1
@@ -405,9 +407,9 @@ dwo_LH_5_end:
# CHECK: address_size: 8
# CHECK: seg_select_size: 0
# CHECK: max_ops_per_inst: 1
-# CHECK: include_directories[ 0] = 'DWODirectory5a'
-# CHECK: include_directories[ 1] = 'DWODirectory5b'
+# CHECK: include_directories[ 0] = .debug_str[0x0000003d] = "DWODirectory5a"
+# CHECK: include_directories[ 1] = .debug_str[0x0000004c] = "DWODirectory5b"
# CHECK-NOT: include_directories
-# CHECK: file_names[ 1] 0 0x00000015 0x00000025 DWOFile5a{{$}}
-# CHECK: file_names[ 2] 1 0x00000035 0x00000045 DWOFile5b{{$}}
+# CHECK: file_names[ 1] 0 0x00000015 0x00000025 "DWOFile5a"
+# CHECK: file_names[ 2] 1 0x00000035 0x00000045 "DWOFile5b"
# CHECK-NOT: file_names
diff --git a/llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s b/llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s
index b2b780285ab..14a6bb6d535 100644
--- a/llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s
+++ b/llvm/test/DebugInfo/X86/dwarfdump-line-dwo.s
@@ -46,8 +46,8 @@ LH_1_end:
# PART1-NEXT: total_length: 0x0000002e
# PART1-NEXT: version: 4
# PART1-NEXT: prologue_length: 0x00000028
-# PART1: include_directories[ 1] = 'Directory1'
-# PART1: file_names[ 1] {{.*}} File1
+# PART1: include_directories[ 1] = "Directory1"
+# PART1: file_names[ 1] {{.*}} "File1"
# Second line table.
LH_2_start:
@@ -92,6 +92,6 @@ LH_2_end:
# PART2-NEXT: version: 4
# PART2-NEXT: prologue_length: 0x00000022
# PART2-NOT: prologue:
-# PART2: include_directories[ 1] = 'Dir2'
-# PART2: file_names[ 1] {{.*}} File2
+# PART2: include_directories[ 1] = "Dir2"
+# PART2: file_names[ 1] {{.*}} "File2"
# PART2-NOT: prologue:
diff --git a/llvm/test/DebugInfo/X86/dwarfdump-line-only.s b/llvm/test/DebugInfo/X86/dwarfdump-line-only.s
index c19ec30ff63..b4d89807f7c 100644
--- a/llvm/test/DebugInfo/X86/dwarfdump-line-only.s
+++ b/llvm/test/DebugInfo/X86/dwarfdump-line-only.s
@@ -91,10 +91,10 @@ ls_F2: .asciz "File2"
# CHECK: address_size: 8
# CHECK: seg_select_size: 0
# CHECK: max_ops_per_inst: 1
-# CHECK: include_directories[ 0] = 'Directory1'
-# CHECK: include_directories[ 1] = 'Directory2'
+# CHECK: include_directories[ 0] = .debug_str[0x00000000] = "Directory1"
+# CHECK: include_directories[ 1] = .debug_str[0x0000000b] = "Directory2"
# CHECK-NOT: include_directories
-# CHECK: file_names[ 1] 1 0x00000051 0x00000052 File1{{$}}
-# CHECK: file_names[ 2] 0 0x00000053 0x00000054 File2{{$}}
+# CHECK: file_names[ 1] 1 0x00000051 0x00000052 .debug_line_str[0x00000000] = "File1"
+# CHECK: file_names[ 2] 0 0x00000053 0x00000054 .debug_line_str[0x00000006] = "File2"
# CHECK-NOT: file_names
# CHECK: 0x0000000000000000 {{.*}} is_stmt end_sequence
diff --git a/llvm/test/DebugInfo/X86/generate-odr-hash.ll b/llvm/test/DebugInfo/X86/generate-odr-hash.ll
index c687c9e5afa..c73a6ded135 100644
--- a/llvm/test/DebugInfo/X86/generate-odr-hash.ll
+++ b/llvm/test/DebugInfo/X86/generate-odr-hash.ll
@@ -122,8 +122,8 @@
; CHECK-LABEL: .debug_line contents:
; CHECK: Line table prologue
; CHECK-NOT: file_names[
-; SINGLE: file_names{{.*}} bar.h
-; CHECK: file_names{{.*}} bar.cpp
+; SINGLE: file_names{{.*}} "bar.h"
+; CHECK: file_names{{.*}} "bar.cpp"
; CHECK-NOT: file_names[
; FISSION: .debug_line.dwo contents:
@@ -133,8 +133,8 @@
; FISSION-NOT: standard_opcode_lengths
; FISSION-NOT: include_directories
; FISSION-NOT: file_names[
-; FISSION: file_names{{.*}} bar.h
-; FISSION: file_names{{.*}} bar.cpp
+; FISSION: file_names{{.*}} "bar.h"
+; FISSION: file_names{{.*}} "bar.cpp"
; FISSION-NOT: file_names[
; CHECK-LABEL: .debug_str contents:
diff --git a/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll b/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
index 64b20e04dee..f3c0527bef0 100644
--- a/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
+++ b/llvm/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
@@ -27,11 +27,11 @@
; CHECK-NEXT: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NEXT: total_length: 0x00000038
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple.c
+; CHECK: file_names[ 1] 0 0x00000000 0x00000000 "simple.c"
; CHECK: debug_line[{{.*}}]
; CHECK-NEXT: Line table prologue:
; CHECK-NEXT: total_length: 0x00000039
-; CHECK: file_names[ 1] 0 0x00000000 0x00000000 simple2.c
+; CHECK: file_names[ 1] 0 0x00000000 0x00000000 "simple2.c"
; CHECK-NOT: file_names
; DWARF3: .debug_info contents:
@@ -46,11 +46,11 @@
; DWARF3-NEXT: debug_line[{{.*}}]
; DWARF3-NEXT: Line table prologue:
; DWARF3-NEXT: total_length: 0x00000038
-; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple.c
+; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 "simple.c"
; DWARF3: debug_line[{{.*}}]
; DWARF3-NEXT: Line table prologue:
; DWARF3-NEXT: total_length: 0x00000039
-; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 simple2.c
+; DWARF3: file_names[ 1] 0 0x00000000 0x00000000 "simple2.c"
; DWARF3-NOT: file_names
; PR15408
diff --git a/llvm/test/DebugInfo/debugmacinfo.test b/llvm/test/DebugInfo/debugmacinfo.test
index fab4ca22527..b417e1bcb25 100644
--- a/llvm/test/DebugInfo/debugmacinfo.test
+++ b/llvm/test/DebugInfo/debugmacinfo.test
@@ -22,6 +22,6 @@ TEST_MACINFO: DW_MACINFO_define - lineno: 3 macro: M2(x,y) ((x)+(y)* Value2)
TEST_MACINFO: DW_MACINFO_end_file
TEST_LINE: .debug_line contents:
-TEST_LINE: file_names[ 1] 0 0x00000000 0x00000000 dwarfdump-macro.cc
-TEST_LINE: file_names[ 2] 1 0x00000000 0x00000000 dwarfdump-macro-cmd.h
-TEST_LINE: file_names[ 3] 0 0x00000000 0x00000000 dwarfdump-macro.h
+TEST_LINE: file_names[ 1] 0 0x00000000 0x00000000 "dwarfdump-macro.cc"
+TEST_LINE: file_names[ 2] 1 0x00000000 0x00000000 "dwarfdump-macro-cmd.h"
+TEST_LINE: file_names[ 3] 0 0x00000000 0x00000000 "dwarfdump-macro.h"
diff --git a/llvm/test/Linker/subprogram-linkonce-weak.ll b/llvm/test/Linker/subprogram-linkonce-weak.ll
index 955955043ff..b35c6f0a988 100644
--- a/llvm/test/Linker/subprogram-linkonce-weak.ll
+++ b/llvm/test/Linker/subprogram-linkonce-weak.ll
@@ -147,14 +147,14 @@ entry:
; DW-LABEL: .debug_line contents:
; Check that we have the right things in the line table as well.
-; DWLW-LABEL: file_names[{{ *}}1]{{.*}} bar.c
+; DWLW-LABEL: file_names[{{ *}}1]{{.*}} "bar.c"
; DWLW: 2 0 1 0 0 is_stmt prologue_end
-; DWLW-LABEL: file_names[{{ *}}1]{{.*}} foo.c
+; DWLW-LABEL: file_names[{{ *}}1]{{.*}} "foo.c"
; DWLW: 52 0 1 0 0 is_stmt prologue_end
; DWLW-NOT: prologue_end
-; DWWL-LABEL: file_names[{{ *}}1]{{.*}} foo.c
+; DWWL-LABEL: file_names[{{ *}}1]{{.*}} "foo.c"
; DWWL: 52 0 1 0 0 is_stmt prologue_end
-; DWWL-LABEL: file_names[{{ *}}1]{{.*}} bar.c
+; DWWL-LABEL: file_names[{{ *}}1]{{.*}} "bar.c"
; DWWL: 2 0 1 0 0 is_stmt prologue_end
; DWWL-NOT: prologue_end
diff --git a/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s b/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
index a873e505f73..e51617a1aba 100644
--- a/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
+++ b/llvm/test/MC/ARM/dwarf-asm-multiple-sections.s
@@ -54,8 +54,8 @@ b:
// DWARF-DL: .debug_line contents:
// DWARF-DL: version: [[DWVER]]
// DWARF-DL-5: address_size: 4
-// DWARF-DL-5: include_directories[ 0] = ''
-// DWARF-DL: file_names[ 1] {{.*}} <stdin>
+// DWARF-DL-5: include_directories[ 0] = ""
+// DWARF-DL: file_names[ 1] {{.*}} "<stdin>"
// DWARF-DL: 0x0000000000000000 17 0 1 0 0 is_stmt
// DWARF-DL-NEXT: 0x0000000000000004 17 0 1 0 0 is_stmt end_sequence
// DWARF-DL-NEXT: 0x0000000000000000 21 0 1 0 0 is_stmt
diff --git a/llvm/test/MC/ELF/debug-md5.s b/llvm/test/MC/ELF/debug-md5.s
index d854c034d3c..88fd967a038 100644
--- a/llvm/test/MC/ELF/debug-md5.s
+++ b/llvm/test/MC/ELF/debug-md5.s
@@ -9,10 +9,10 @@
# CHECK: debug_line[0x00000000]
# CHECK: version: 5
-# CHECK: include_directories[ 0] = ''
-# CHECK: include_directories[ 1] = 'dir1'
-# CHECK: include_directories[ 2] = 'dir2'
+# CHECK: include_directories[ 0] = ""
+# CHECK: include_directories[ 1] = "dir1"
+# CHECK: include_directories[ 2] = "dir2"
# CHECK-NOT: include_directories
# CHECK: Dir MD5 Checksum File Name
-# CHECK: file_names[ 1] 1 00112233445566778899aabbccddeeff foo
-# CHECK: file_names[ 2] 2 ffeeddccbbaa99887766554433221100 bar
+# CHECK: file_names[ 1] 1 00112233445566778899aabbccddeeff "foo"
+# CHECK: file_names[ 2] 2 ffeeddccbbaa99887766554433221100 "bar"
diff --git a/llvm/test/MC/MachO/gen-dwarf-cpp.s b/llvm/test/MC/MachO/gen-dwarf-cpp.s
index 784f2f88d8b..08b07de9e96 100644
--- a/llvm/test/MC/MachO/gen-dwarf-cpp.s
+++ b/llvm/test/MC/MachO/gen-dwarf-cpp.s
@@ -14,13 +14,13 @@ L1: leave
// rdar://9275556
// We check that the source name "t.s" is picked up
-// CHECK: include_directories[ 1] = '{{.*[/\\]}}test{{[/\\]}}MC{{[/\\]}}MachO'
-// CHECK: include_directories[ 2] = 'inc'
+// CHECK: include_directories[ 1] = "{{.*[/\\]}}test{{[/\\]}}MC{{[/\\]}}MachO"
+// CHECK: include_directories[ 2] = "inc"
// CHECK: Dir Mod Time File Len File Name
// CHECK: ---- ---------- ---------- ---------------------------
-// CHECK: file_names[ 1] 1 0x00000000 0x00000000 gen-dwarf-cpp.s
-// CHECK: file_names[ 2] 0 0x00000000 0x00000000 t.s
-// CHECK: file_names[ 3] 2 0x00000000 0x00000000 g.s
+// CHECK: file_names[ 1] 1 0x00000000 0x00000000 "gen-dwarf-cpp.s"
+// CHECK: file_names[ 2] 0 0x00000000 0x00000000 "t.s"
+// CHECK: file_names[ 3] 2 0x00000000 0x00000000 "g.s"
// CHECK-NOT: file_names
// We check that the source line number 100 is picked up before the "movl"
diff --git a/llvm/test/MC/MachO/gen-dwarf-macro-cpp.s b/llvm/test/MC/MachO/gen-dwarf-macro-cpp.s
index 9c3ba5d4b48..9fc8571c90c 100644
--- a/llvm/test/MC/MachO/gen-dwarf-macro-cpp.s
+++ b/llvm/test/MC/MachO/gen-dwarf-macro-cpp.s
@@ -13,5 +13,5 @@
// We check that the source name "foo.S" is picked up
// CHECK: Dir Mod Time File Len File Name
// CHECK: ---- ---------- ---------- ---------------------------
-// CHECK: file_names[ 1] 1 0x00000000 0x00000000 gen-dwarf-macro-cpp.s
-// CHECK: file_names[ 2] 0 0x00000000 0x00000000 foo.S
+// CHECK: file_names[ 1] 1 0x00000000 0x00000000 "gen-dwarf-macro-cpp.s"
+// CHECK: file_names[ 2] 0 0x00000000 0x00000000 "foo.S"
diff --git a/llvm/test/MC/MachO/gen-dwarf.s b/llvm/test/MC/MachO/gen-dwarf.s
index 74d3d2aa8bf..f3985175227 100644
--- a/llvm/test/MC/MachO/gen-dwarf.s
+++ b/llvm/test/MC/MachO/gen-dwarf.s
@@ -111,7 +111,7 @@ _x: .long 1
// We don't check include_directories as it has a temp path
// CHECK: Dir Mod Time File Len File Name
// CHECK: ---- ---------- ---------- ---------------------------
-// CHECK: file_names[ 1] 1 0x00000000 0x00000000 gen-dwarf.s
+// CHECK: file_names[ 1] 1 0x00000000 0x00000000 "gen-dwarf.s"
// CHECK: Address Line Column File ISA Discriminator Flags
// CHECK: ------------------ ------ ------ ------ --- ------------- -------------
diff --git a/llvm/test/tools/dsymutil/X86/basic-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-linking-x86.test
index 954485e23f5..d9b0ee9b10f 100644
--- a/llvm/test/tools/dsymutil/X86/basic-linking-x86.test
+++ b/llvm/test/tools/dsymutil/X86/basic-linking-x86.test
@@ -155,7 +155,7 @@ CHECK-NEXT:[0x0000000100000f90, 0x0000000100000fa9)
CHECK: .debug_line contents:
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic1.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic1.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000ea0 23 0 1 0 0 is_stmt
@@ -164,7 +164,7 @@ CHECK-NEXT: 0x0000000100000ec4 24 0 1 0 0 is_stmt e
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic2.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic2.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000ed0 19 0 1 0 0 is_stmt
@@ -176,7 +176,7 @@ CHECK-NEXT: 0x0000000100000f37 15 0 1 0 0 is_stmt e
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic3.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic3.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f40 16 0 1 0 0 is_stmt
diff --git a/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
index 54d8052cdaf..4bdaf69f95e 100644
--- a/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
+++ b/llvm/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
@@ -140,7 +140,7 @@ CHECK-NEXT: [0x0000000100000f90, 0x0000000100000fb4)
CHECK: .debug_line contents:
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic1.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic1.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f40 26 0 1 0 0 is_stmt
@@ -150,7 +150,7 @@ CHECK-NEXT: 0x0000000100000f4b 27 3 1 0 0 end_seque
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic2.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic2.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f50 19 0 1 0 0 is_stmt
@@ -166,7 +166,7 @@ CHECK-NEXT: 0x0000000100000f87 20 3 1 0 0 end_seque
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic3.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic3.c"
CHECK: Address Line Column File ISA Discriminator Flags
CHECK-NEXT: ------------------ ------ ------ ------ --- ------------- -------------
CHECK-NEXT: 0x0000000100000f90 16 0 1 0 0 is_stmt
diff --git a/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test b/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
index 558b7cecec9..931f8e0fe32 100644
--- a/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
+++ b/llvm/test/tools/dsymutil/X86/basic-lto-linking-x86.test
@@ -152,14 +152,14 @@ CHECK-NEXT: [0x0000000100000f90, 0x0000000100000fb4)
CHECK: .debug_line contents
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic1.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic1.c"
CHECK: 0x0000000100000f40 23 0 1 0 0 is_stmt
CHECK: 0x0000000100000f44 24 0 1 0 0 is_stmt prologue_end
CHECK: 0x0000000100000f4b 24 0 1 0 0 is_stmt end_sequence
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic2.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic2.c"
CHECK: 0x0000000100000f50 19 0 1 0 0 is_stmt
CHECK: 0x0000000100000f54 20 0 1 0 0 is_stmt prologue_end
CHECK: 0x0000000100000f63 15 0 1 0 0 is_stmt
@@ -168,7 +168,7 @@ CHECK: 0x0000000100000f89 20 0 1 0 0 is_stmt end_se
CHECK: Dir Mod Time File Len File Name
CHECK-NEXT: ---- ---------- ---------- ---------------------------
-CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 basic3.c
+CHECK-NEXT: file_names[ 1] 0 0x00000000 0x00000000 "basic3.c"
CHECK: 0x0000000100000f90 16 0 1 0 0 is_stmt
CHECK: 0x0000000100000f94 12 0 1 0 0 is_stmt prologue_end
CHECK: 0x0000000100000f9a 17 0 1 0 0 is_stmt
OpenPOWER on IntegriCloud