diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-12-18 00:46:16 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-12-18 00:46:16 +0000 |
commit | 97f07c2778d5a82bae0418e1f05f44baa388c046 (patch) | |
tree | 7ba9903562e9aff04d23e6e9fb7673ec2b13d7f2 /llvm/lib/Object/MachOObjectFile.cpp | |
parent | d927bd8d15183809789c875ba7371e92145a688e (diff) | |
download | llvm-97f07c2778d5a82bae0418e1f05f44baa388c046.zip llvm-97f07c2778d5a82bae0418e1f05f44baa388c046.tar.gz llvm-97f07c2778d5a82bae0418e1f05f44baa388c046.tar.bz2 |
IR: Handle self-referencing DICompositeTypes in DIBuilder
Add API to DIBuilder to handle self-referencing `DICompositeType`s.
Self-references aren't expected in the debug info graph, and we take
advantage of that by only calling `resolveCycles()` on nodes that were
once forward declarations (otherwise, DIBuilder needs an expensive
tracking reference to every unresolved node it creates, which in cyclic
graphs is *all of them*).
However, clang seems to create self-referencing `DICompositeType`s. Add
API to manage this safely. The paired commit to clang will include the
regression test.
I'll make the `DICompositeType` API `private` in a follow-up to prevent
misuse (I've separated that to prevent build failures from missing the
clang commit).
llvm-svn: 224482
Diffstat (limited to 'llvm/lib/Object/MachOObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions