diff options
| author | Davide Italiano <davide@freebsd.org> | 2019-01-07 23:09:09 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2019-01-07 23:09:09 +0000 |
| commit | bf1fdb852f936ca7c8493c063d6f14ae552fb86f (patch) | |
| tree | 918cf971f53b9552db273eec88d7920f47c2c508 /llvm/lib/IR | |
| parent | c5e0c58875c668f00606fdda5cfdb91f0039e94f (diff) | |
| download | bcm5719-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.cpp | 2 |
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) { |

