CGDebugInfo: Use DIBuilder API for self-referencing DICompositeTypes
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Thu, 18 Dec 2014 00:48:56 +0000 (00:48 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Thu, 18 Dec 2014 00:48:56 +0000 (00:48 +0000)
commitc8ee63e2d08700865b304d4d867573535a069fc6
tree4e21d12f352c8d967f9cce12fb8ac6fddff900c4
parent97f07c2778d5a82bae0418e1f05f44baa388c046
CGDebugInfo: Use DIBuilder API for self-referencing DICompositeTypes

Use new `DIBuilder` API from LLVM r224482 to mutate `DICompositeType`s,
rather than changing them directly.  This allows `DIBuilder` to track
otherwise orphaned cycles when `CollectContainingType()` creates a
self-reference.

Fixes PR21941.

llvm-svn: 224483
clang/lib/CodeGen/CGDebugInfo.cpp
clang/test/CodeGenCXX/vtable-holder-self-reference.cpp [new file with mode: 0644]