aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/MachOObjectFile.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-12-18 00:46:16 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-12-18 00:46:16 +0000
commit97f07c2778d5a82bae0418e1f05f44baa388c046 (patch)
tree7ba9903562e9aff04d23e6e9fb7673ec2b13d7f2 /llvm/lib/Object/MachOObjectFile.cpp
parentd927bd8d15183809789c875ba7371e92145a688e (diff)
downloadllvm-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