summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2019-01-07 23:09:09 +0000
committerDavide Italiano <davide@freebsd.org>2019-01-07 23:09:09 +0000
commitbf1fdb852f936ca7c8493c063d6f14ae552fb86f (patch)
tree918cf971f53b9552db273eec88d7920f47c2c508 /llvm/lib/IR
parentc5e0c58875c668f00606fdda5cfdb91f0039e94f (diff)
downloadbcm5719-llvm-bf1fdb852f936ca7c8493c063d6f14ae552fb86f.tar.gz
bcm5719-llvm-bf1fdb852f936ca7c8493c063d6f14ae552fb86f.zip
[Verifier] Reject invalid type for DILocalVariable.
Reviewers: aprantl Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D56414 llvm-svn: 350578
Diffstat (limited to 'llvm/lib/IR')
-rw-r--r--llvm/lib/IR/Verifier.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/IR/Verifier.cpp b/llvm/lib/IR/Verifier.cpp
index 60ff0adb8f4..30e77b92009 100644
--- a/llvm/lib/IR/Verifier.cpp
+++ b/llvm/lib/IR/Verifier.cpp
@@ -1241,6 +1241,8 @@ void Verifier::visitDILocalVariable(const DILocalVariable &N) {
AssertDI(N.getTag() == dwarf::DW_TAG_variable, "invalid tag", &N);
AssertDI(N.getRawScope() && isa<DILocalScope>(N.getRawScope()),
"local variable requires a valid scope", &N, N.getRawScope());
+ if (auto Ty = N.getType())
+ AssertDI(!isa<DISubroutineType>(Ty), "invalid type", &N, N.getType());
}
void Verifier::visitDILabel(const DILabel &N) {
OpenPOWER on IntegriCloud