diff options
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/IR/Verifier.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index fe3d6eb6cf4..fad4aacb52d 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -4375,15 +4375,14 @@ void Verifier::verifyTypeRefs() { // Visit all the compile units again to map the type references. SmallDenseMap<const MDString *, const DIType *, 32> TypeRefs; - for (auto *CU : CUs->operands()) - if (isa<DICompileUnit>(CU)) - if (auto Ts = cast<DICompileUnit>(CU)->getRetainedTypes()) - for (DIType *Op : Ts) - if (auto *T = dyn_cast_or_null<DICompositeType>(Op)) - if (auto *S = T->getRawIdentifier()) { - UnresolvedTypeRefs.erase(S); - TypeRefs.insert(std::make_pair(S, T)); - } + for (auto *MD : CUs->operands()) + if (auto *CU = dyn_cast<DICompileUnit>(MD)) + for (DIType *Op : CU->getRetainedTypes()) + if (auto *T = dyn_cast_or_null<DICompositeType>(Op)) + if (auto *S = T->getRawIdentifier()) { + UnresolvedTypeRefs.erase(S); + TypeRefs.insert(std::make_pair(S, T)); + } // Verify debug info intrinsic bit piece expressions. This needs a second // pass through the intructions, since we haven't built TypeRefs yet when |

