DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined...
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 24 Apr 2019 18:09:44 +0000 (18:09 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 24 Apr 2019 18:09:44 +0000 (18:09 +0000)
commit832c7d9f36bcb7a99113999439c82390b31919bd
tree18f7ebee245559d04318d5e3fa543cd8f77f4314
parent882ca6d48483938bd1f3b42c279f9aa8364149a7
DebugInfo: Emit only declarations (not whole definitions) of non-unit user defined types into type units

While this doesn't come up in reasonable cases currently (the only user
defined types not in type units are ones without linkage - which makes
for near-ODR violations, because it'd be a type with linkage referencing
a type without linkage - such a type can't be validly defined in more
than one TU, so arguably it shouldn't be in a type unit to begin with -
but it's a convenient way to demonstrate an issue that will become more
revalent with homed modular debug info type definitions - which also
don't need to be in type units but more legitimately so).

Precursor to the Clang change to de-type-unit (by omitting the
'identifier') types homed due to strong linkage vtables. (making that
change without this one would lead to major type duplication in type
units)

llvm-svn: 359122
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
llvm/test/DebugInfo/X86/tu-to-non-tu.ll [new file with mode: 0644]