[llvm] r324270 - [DWARF] Regularize dumping strings from line tables.

Paul Robinson via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 5 12:43:15 PST 2018


Author: probinson
Date: Mon Feb  5 12:43:15 2018
New Revision: 324270

URL: http://llvm.org/viewvc/llvm-project?rev=324270&view=rev
Log:
[DWARF] Regularize dumping strings from line tables.

The major visible difference here is that in line-table dumps,
directory and file names are wrapped in double-quotes; previously,
directory names got single quotes and file names were not quoted at
all.

The improvement in this patch is that when a DWARF v5 line table
header has indirect strings, in a verbose dump these will all have
their section[offset] printed as well as the name itself.  This
matches the format used for dumping strings in the .debug_info
section.

Differential Revision: https://reviews.llvm.org/D42802

Modified:
    llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
    llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp
    llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
    llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp
    llvm/trunk/test/CodeGen/BPF/dwarfdump.ll
    llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll
    llvm/trunk/test/CodeGen/X86/dwarf-comp-dir.ll
    llvm/trunk/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll
    llvm/trunk/test/DebugInfo/Generic/lto-comp-dir.ll
    llvm/trunk/test/DebugInfo/X86/dwarfdump-header-64.s
    llvm/trunk/test/DebugInfo/X86/dwarfdump-header.s
    llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s
    llvm/trunk/test/DebugInfo/X86/dwarfdump-line-only.s
    llvm/trunk/test/DebugInfo/X86/generate-odr-hash.ll
    llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
    llvm/trunk/test/DebugInfo/debugmacinfo.test
    llvm/trunk/test/Linker/subprogram-linkonce-weak.ll
    llvm/trunk/test/MC/ARM/dwarf-asm-multiple-sections.s
    llvm/trunk/test/MC/ELF/debug-md5.s
    llvm/trunk/test/MC/MachO/gen-dwarf-cpp.s
    llvm/trunk/test/MC/MachO/gen-dwarf-macro-cpp.s
    llvm/trunk/test/MC/MachO/gen-dwarf.s
    llvm/trunk/test/tools/dsymutil/X86/basic-linking-x86.test
    llvm/trunk/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
    llvm/trunk/test/tools/dsymutil/X86/basic-lto-linking-x86.test

Modified: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h (original)
+++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h Mon Feb  5 12:43:15 2018
@@ -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.

Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp Mon Feb  5 12:43:15 2018
@@ -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);
     }
   }
 

Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp Mon Feb  5 12:43:15 2018
@@ -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_
   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_
       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_
 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 DWARFDataExtr
     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 DWARFDataExtr
                      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 DWARFDataExtr
       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 DWARFDataExtr
         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(DW
     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(DW
         // 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::getFileN
   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::getFileN
   // 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

Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp (original)
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp Mon Feb  5 12:43:15 2018
@@ -284,10 +284,10 @@ bool DWARFFormValue::isFormClass(DWARFFo
   }
   // 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 &O
       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:

Modified: llvm/trunk/test/CodeGen/BPF/dwarfdump.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/BPF/dwarfdump.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/BPF/dwarfdump.ll (original)
+++ llvm/trunk/test/CodeGen/BPF/dwarfdump.ll Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll (original)
+++ llvm/trunk/test/CodeGen/Generic/dwarf-md5.ll Mon Feb  5 12:43:15 2018
@@ -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"

Modified: llvm/trunk/test/CodeGen/X86/dwarf-comp-dir.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/dwarf-comp-dir.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/dwarf-comp-dir.ll (original)
+++ llvm/trunk/test/CodeGen/X86/dwarf-comp-dir.ll Mon Feb  5 12:43:15 2018
@@ -17,5 +17,5 @@ target triple = "x86_64-unknown-linux-gn
 ; 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}

Modified: llvm/trunk/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll (original)
+++ llvm/trunk/test/DebugInfo/AMDGPU/dwarfdump-relocs.ll Mon Feb  5 12:43:15 2018
@@ -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)
 

Modified: llvm/trunk/test/DebugInfo/Generic/lto-comp-dir.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Generic/lto-comp-dir.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/Generic/lto-comp-dir.ll (original)
+++ llvm/trunk/test/DebugInfo/Generic/lto-comp-dir.ll Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/DebugInfo/X86/dwarfdump-header-64.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-header-64.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-header-64.s (original)
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-header-64.s Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/DebugInfo/X86/dwarfdump-header.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-header.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-header.s (original)
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-header.s Mon Feb  5 12:43:15 2018
@@ -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", at 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

Modified: llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s (original)
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-line-dwo.s Mon Feb  5 12:43:15 2018
@@ -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:

Modified: llvm/trunk/test/DebugInfo/X86/dwarfdump-line-only.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/dwarfdump-line-only.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/dwarfdump-line-only.s (original)
+++ llvm/trunk/test/DebugInfo/X86/dwarfdump-line-only.s Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/DebugInfo/X86/generate-odr-hash.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/generate-odr-hash.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/generate-odr-hash.ll (original)
+++ llvm/trunk/test/DebugInfo/X86/generate-odr-hash.ll Mon Feb  5 12:43:15 2018
@@ -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:

Modified: llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll (original)
+++ llvm/trunk/test/DebugInfo/X86/stmt-list-multiple-compile-units.ll Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/DebugInfo/debugmacinfo.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/debugmacinfo.test?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/DebugInfo/debugmacinfo.test (original)
+++ llvm/trunk/test/DebugInfo/debugmacinfo.test Mon Feb  5 12:43:15 2018
@@ -22,6 +22,6 @@ TEST_MACINFO:   DW_MACINFO_define - line
 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"

Modified: llvm/trunk/test/Linker/subprogram-linkonce-weak.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Linker/subprogram-linkonce-weak.ll?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/Linker/subprogram-linkonce-weak.ll (original)
+++ llvm/trunk/test/Linker/subprogram-linkonce-weak.ll Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/MC/ARM/dwarf-asm-multiple-sections.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/dwarf-asm-multiple-sections.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM/dwarf-asm-multiple-sections.s (original)
+++ llvm/trunk/test/MC/ARM/dwarf-asm-multiple-sections.s Mon Feb  5 12:43:15 2018
@@ -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

Modified: llvm/trunk/test/MC/ELF/debug-md5.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/debug-md5.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/debug-md5.s (original)
+++ llvm/trunk/test/MC/ELF/debug-md5.s Mon Feb  5 12:43:15 2018
@@ -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"

Modified: llvm/trunk/test/MC/MachO/gen-dwarf-cpp.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/gen-dwarf-cpp.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/gen-dwarf-cpp.s (original)
+++ llvm/trunk/test/MC/MachO/gen-dwarf-cpp.s Mon Feb  5 12:43:15 2018
@@ -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"

Modified: llvm/trunk/test/MC/MachO/gen-dwarf-macro-cpp.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/gen-dwarf-macro-cpp.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/gen-dwarf-macro-cpp.s (original)
+++ llvm/trunk/test/MC/MachO/gen-dwarf-macro-cpp.s Mon Feb  5 12:43:15 2018
@@ -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"

Modified: llvm/trunk/test/MC/MachO/gen-dwarf.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/MachO/gen-dwarf.s?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/MC/MachO/gen-dwarf.s (original)
+++ llvm/trunk/test/MC/MachO/gen-dwarf.s Mon Feb  5 12:43:15 2018
@@ -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: ------------------ ------ ------ ------ --- ------------- -------------

Modified: llvm/trunk/test/tools/dsymutil/X86/basic-linking-x86.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/basic-linking-x86.test?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/basic-linking-x86.test (original)
+++ llvm/trunk/test/tools/dsymutil/X86/basic-linking-x86.test Mon Feb  5 12:43:15 2018
@@ -155,7 +155,7 @@ CHECK-NEXT:[0x0000000100000f90, 0x000000
 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
 
 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
 
 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

Modified: llvm/trunk/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test (original)
+++ llvm/trunk/test/tools/dsymutil/X86/basic-lto-dw4-linking-x86.test Mon Feb  5 12:43:15 2018
@@ -140,7 +140,7 @@ CHECK-NEXT: [0x0000000100000f90, 0x00000
 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
 
 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
 
 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

Modified: llvm/trunk/test/tools/dsymutil/X86/basic-lto-linking-x86.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/basic-lto-linking-x86.test?rev=324270&r1=324269&r2=324270&view=diff
==============================================================================
--- llvm/trunk/test/tools/dsymutil/X86/basic-lto-linking-x86.test (original)
+++ llvm/trunk/test/tools/dsymutil/X86/basic-lto-linking-x86.test Mon Feb  5 12:43:15 2018
@@ -152,14 +152,14 @@ CHECK-NEXT: [0x0000000100000f90, 0x00000
 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
 
 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




More information about the llvm-commits mailing list