diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 3858cabb81..15fb9cb5f2 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -645,8 +645,14 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) { DICompileUnit DIUnit(N); StringRef FN = DIUnit.getFilename(); CompilationDir = DIUnit.getDirectory(); - // @LOCALMOD - unsigned ID = getOrCreateCompileUnitID(FN, CompilationDir, N); + // @LOCALMOD-BEGIN + unsigned ID; + if (Triple(Asm->TM.getTargetTriple()).getOS() == Triple::NativeClient) { + ID = getOrCreateCompileUnitID(FN, CompilationDir, N); + } else { + ID = getOrCreateSourceID(FN, CompilationDir); + } + // @LOCALMOD-END DIE *Die = new DIE(dwarf::DW_TAG_compile_unit); CompileUnit *NewCU = new CompileUnit(ID, DIUnit.getLanguage(), Die, @@ -764,7 +770,6 @@ bool DwarfDebug::collectLegacyDebugInfo(const Module *M) { for (DebugInfoFinder::iterator I = DbgFinder.compile_unit_begin(), E = DbgFinder.compile_unit_end(); I != E; ++I) constructCompileUnit(*I); - // Create DIEs for each global variable. for (DebugInfoFinder::iterator I = DbgFinder.global_variable_begin(), E = DbgFinder.global_variable_end(); I != E; ++I) { |