[llvm] r335146 - [DWARF] Don't keep a ref to possibly stack allocated data.

Paul Robinson via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 20 10:08:46 PDT 2018


Author: probinson
Date: Wed Jun 20 10:08:46 2018
New Revision: 335146

URL: http://llvm.org/viewvc/llvm-project?rev=335146&view=rev
Log:
[DWARF] Don't keep a ref to possibly stack allocated data.

Modified:
    llvm/trunk/include/llvm/MC/MCDwarf.h
    llvm/trunk/lib/MC/MCDwarf.cpp
    llvm/trunk/test/MC/ELF/dwarf-file0.s

Modified: llvm/trunk/include/llvm/MC/MCDwarf.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCDwarf.h?rev=335146&r1=335145&r2=335146&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCDwarf.h (original)
+++ llvm/trunk/include/llvm/MC/MCDwarf.h Wed Jun 20 10:08:46 2018
@@ -213,7 +213,7 @@ struct MCDwarfLineTableHeader {
   SmallVector<std::string, 3> MCDwarfDirs;
   SmallVector<MCDwarfFile, 3> MCDwarfFiles;
   StringMap<unsigned> SourceIdMap;
-  StringRef CompilationDir;
+  std::string CompilationDir;
   MCDwarfFile RootFile;
   bool HasSource = false;
 private:

Modified: llvm/trunk/lib/MC/MCDwarf.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCDwarf.cpp?rev=335146&r1=335145&r2=335146&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCDwarf.cpp (original)
+++ llvm/trunk/lib/MC/MCDwarf.cpp Wed Jun 20 10:08:46 2018
@@ -389,8 +389,8 @@ void MCDwarfLineTableHeader::emitV5FileD
                                     : dwarf::DW_FORM_string);
   MCOS->EmitULEB128IntValue(MCDwarfDirs.size() + 1);
   // Try not to emit an empty compilation directory.
-  const StringRef &CompDir =
-      CompilationDir.empty() ? CtxCompilationDir : CompilationDir;
+  const StringRef CompDir =
+      CompilationDir.empty() ? CtxCompilationDir : StringRef(CompilationDir);
   if (LineStr) {
     // Record path strings, emit references here.
     LineStr->emitRef(MCOS, CompDir);

Modified: llvm/trunk/test/MC/ELF/dwarf-file0.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/dwarf-file0.s?rev=335146&r1=335145&r2=335146&view=diff
==============================================================================
--- llvm/trunk/test/MC/ELF/dwarf-file0.s (original)
+++ llvm/trunk/test/MC/ELF/dwarf-file0.s Wed Jun 20 10:08:46 2018
@@ -3,18 +3,20 @@
 # REQUIRES: default_triple
 # Darwin is stuck on DWARF v2.
 # XFAIL: darwin
-        .file 0 "root.cpp"
-        .file 1 "header.h"
-        .file 2 "root.cpp"
-# CHECK-5:     include_directories[ 0] = "{{.+}}"
-# CHECK-4-NOT: include_directories
+        .file 0 "/test" "root.cpp"
+        .file 1 "/include" "header.h"
+        .file 2 "/test" "root.cpp"
+# CHECK-5:     include_directories[ 0] = "/test"
+# CHECK-4-NOT: include_directories[ 0]
+# CHECK:       include_directories[ 1] = "/include"
+# CHECK-NOT:   include_directories
 # CHECK-4-NOT: file_names[ 0]
 # CHECK-5:     file_names[ 0]:
 # CHECK-5-NEXT: name: "root.cpp"
 # CHECK-5-NEXT: dir_index: 0
 # CHECK:       file_names[ 1]:
 # CHECK-NEXT:  name: "header.h"
-# CHECK-NEXT:  dir_index: 0
+# CHECK-NEXT:  dir_index: 1
 # CHECK:       file_names[ 2]:
 # CHECK-NEXT:  name: "root.cpp"
 # CHECK-NEXT:  dir_index: 0




More information about the llvm-commits mailing list