[NativePDB] Fix a use after free and enable corresponding native test.

We had a use after free where we were assigning the result of a function
that returned a string to a StringRef.  After fixing this use after
free, one of the DIA PDB tests now passes with the native PDB reader,
so we enable the test under native mode as well.  The goal is to
eventually make all the tests pass under both, at which point we can
disable them all under DIA mode.

llvm-svn: 349673
This commit is contained in:
Zachary Turner 2018-12-19 19:45:30 +00:00
parent e4fa9b06f3
commit 51f88af359
2 changed files with 3 additions and 2 deletions

View File

@ -1,7 +1,8 @@
REQUIRES: system-windows, msvc
RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/CompilandsTest.cpp.obj %S/Inputs/CompilandsTest.cpp
RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/CompilandsTest.cpp.exe %T/CompilandsTest.cpp.obj
RUN: lldb-test symbols %T/CompilandsTest.cpp.exe | FileCheck %s
RUN: env LLDB_USE_NATIVE_PDB_READER=1 lldb-test symbols %T/CompilandsTest.cpp.exe | FileCheck %s
RUN: env LLDB_USE_NATIVE_PDB_READER=0 lldb-test symbols %T/CompilandsTest.cpp.exe | FileCheck %s
; Link default libraries

View File

@ -419,7 +419,7 @@ SymbolFileNativePDB::CreateCompileUnit(const CompilandIndexItem &cci) {
if (cci.m_compile_opts && cci.m_compile_opts->hasOptimizations())
optimized = eLazyBoolYes;
llvm::StringRef source_file_name =
llvm::SmallString<64> source_file_name =
m_index->compilands().GetMainSourceFile(cci);
FileSpec fs(source_file_name);