summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2017-08-25 22:08:15 +0000
committerDavide Italiano <davide@freebsd.org>2017-08-25 22:08:15 +0000
commit26053818a32a75b451c800109b15dfd2a415d446 (patch)
tree895cda4b84437185e55e5ba18a0fdb7c3132f13f /llvm/lib/IR
parenta872519dbd9fe92243263ee2fb4179cae2498cb2 (diff)
downloadbcm5719-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.cpp1
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),
OpenPOWER on IntegriCloud