aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-12-02 21:49:08 +0000
committerDimitry Andric <dim@FreeBSD.org>2022-06-04 11:59:04 +0000
commit574b7079b96703a748f89ef5adb7dc3e26b8f7fc (patch)
tree195000196b1e0cc13dea43258fa240e006f48184 /contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp
parent1f6fd64fe9c996b4795ee4a6c66b8f9216747560 (diff)
Diffstat (limited to 'contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp')
-rw-r--r--contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp b/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp
index ca7dafc814ce..548962bd6a98 100644
--- a/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp
+++ b/contrib/llvm-project/llvm/lib/IR/DIBuilder.cpp
@@ -34,7 +34,20 @@ static cl::opt<bool>
DIBuilder::DIBuilder(Module &m, bool AllowUnresolvedNodes, DICompileUnit *CU)
: M(m), VMContext(M.getContext()), CUNode(CU), DeclareFn(nullptr),
ValueFn(nullptr), LabelFn(nullptr),
- AllowUnresolvedNodes(AllowUnresolvedNodes) {}
+ AllowUnresolvedNodes(AllowUnresolvedNodes) {
+ if (CUNode) {
+ if (const auto &ETs = CUNode->getEnumTypes())
+ AllEnumTypes.assign(ETs.begin(), ETs.end());
+ if (const auto &RTs = CUNode->getRetainedTypes())
+ AllRetainTypes.assign(RTs.begin(), RTs.end());
+ if (const auto &GVs = CUNode->getGlobalVariables())
+ AllGVs.assign(GVs.begin(), GVs.end());
+ if (const auto &IMs = CUNode->getImportedEntities())
+ AllImportedModules.assign(IMs.begin(), IMs.end());
+ if (const auto &MNs = CUNode->getMacros())
+ AllMacrosPerParent.insert({nullptr, {MNs.begin(), MNs.end()}});
+ }
+}
void DIBuilder::trackIfUnresolved(MDNode *N) {
if (!N)