diff options
| author | Davide Italiano <davide@freebsd.org> | 2017-08-25 22:08:15 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2017-08-25 22:08:15 +0000 |
| commit | 26053818a32a75b451c800109b15dfd2a415d446 (patch) | |
| tree | 895cda4b84437185e55e5ba18a0fdb7c3132f13f /llvm/lib/IR | |
| parent | a872519dbd9fe92243263ee2fb4179cae2498cb2 (diff) | |
| download | bcm5719-llvm-26053818a32a75b451c800109b15dfd2a415d446.tar.gz bcm5719-llvm-26053818a32a75b451c800109b15dfd2a415d446.zip | |
[Verifier] Diagnose invalid DIType references instead of crashing.
Fixes PR34325.
llvm-svn: 311805
Diffstat (limited to 'llvm/lib/IR')
| -rw-r--r-- | llvm/lib/IR/Verifier.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp index 0cd6dbb0664..e28644a081c 100644 --- a/llvm/lib/IR/Verifier.cpp +++ b/llvm/lib/IR/Verifier.cpp @@ -1154,6 +1154,7 @@ void Verifier::visitDIGlobalVariable(const DIGlobalVariable &N) { AssertDI(N.getTag() == dwarf::DW_TAG_variable, "invalid tag", &N); AssertDI(!N.getName().empty(), "missing global variable name", &N); + AssertDI(isType(N.getRawType()), "invalid type ref", &N, N.getRawType()); AssertDI(N.getType(), "missing global variable type", &N); if (auto *Member = N.getRawStaticDataMemberDeclaration()) { AssertDI(isa<DIDerivedType>(Member), |

