DebugInfo: Do not rely on the compilation dir (index 0) for files in line tables...
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 18 Mar 2014 00:11:48 +0000 (00:11 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 18 Mar 2014 00:11:48 +0000 (00:11 +0000)
commit2a12c4e5bdff047c10c2e8ca3b70e3cd86a8b858
treeac6762134947abdd2d010aea1338e81e93e80081
parent1881227389bfb5a39bd47ccc84504d8d81031bf5
DebugInfo: Do not rely on the compilation dir (index 0) for files in line tables shared between compilation units

When emitting assembly there's no support for emitting separate line
tables for each compilation unit - so LLVM emits .loc directives
producing a single line table.

Line tables have an implicit directory (index 0) equal to the
compilation directory (DW_AT_comp_dir) of the compilation unit that
references them.

If multiple compilation units (with possibly disparate compilation
directories) reference the same line table, we must avoid relying on
this ambiguous directory.

Achieve this my simply not setting the compilation directory on the line
table when we're in this situation (multiple units while emitting
assembly).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204094 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h
test/DebugInfo/lto-comp-dir.ll