summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/Verifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/IR/Verifier.cpp')
-rw-r--r--llvm/lib/IR/Verifier.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index b2a86e27b75..af79984f59a 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -758,12 +758,11 @@ void Verifier::visitMDCompositeType(const MDCompositeType &N) {
void Verifier::visitMDSubroutineType(const MDSubroutineType &N) {
Assert(N.getTag() == dwarf::DW_TAG_subroutine_type, "invalid tag", &N);
- Assert(N.getRawElements() && isa<MDTuple>(N.getRawElements()),
- "invalid composite elements", &N, N.getRawElements());
-
- for (Metadata *Ty : N.getTypeArray()->operands()) {
- Assert(isTypeRef(Ty), "invalid subroutine type ref", &N, N.getTypeArray(),
- Ty);
+ if (auto *Types = N.getRawTypeArray()) {
+ Assert(isa<MDTuple>(Types), "invalid composite elements", &N, Types);
+ for (Metadata *Ty : N.getTypeArray()->operands()) {
+ Assert(isTypeRef(Ty), "invalid subroutine type ref", &N, Types, Ty);
+ }
}
}
OpenPOWER on IntegriCloud