diff options
author | Tim Northover <t.p.northover@gmail.com> | 2020-10-14 11:38:01 +0100 |
---|---|---|
committer | Tim Northover <t.p.northover@gmail.com> | 2020-10-14 12:16:05 +0100 |
commit | 630d2647986aa6d672dce184460d7ca3349eb006 (patch) | |
tree | 1c6005f462a5710c68e3984e9944e21af46b590a /llvm/lib/Analysis/MemoryBuiltins.cpp | |
parent | af5be38a01031ed3d9a9690c4ed881fbe781111f (diff) | |
download | llvm-630d2647986aa6d672dce184460d7ca3349eb006.zip llvm-630d2647986aa6d672dce184460d7ca3349eb006.tar.gz llvm-630d2647986aa6d672dce184460d7ca3349eb006.tar.bz2 |
Analysis: only query size of sized objects.
Recently we started looking into sret parameters, though the issue could crop
up elsewhere. If the pointee type is opaque, we should not try to compute its
size because that leads to an assertion failure.
Diffstat (limited to 'llvm/lib/Analysis/MemoryBuiltins.cpp')
-rw-r--r-- | llvm/lib/Analysis/MemoryBuiltins.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/MemoryBuiltins.cpp b/llvm/lib/Analysis/MemoryBuiltins.cpp index 402a2bc..cbb54e8 100644 --- a/llvm/lib/Analysis/MemoryBuiltins.cpp +++ b/llvm/lib/Analysis/MemoryBuiltins.cpp @@ -678,7 +678,7 @@ SizeOffsetType ObjectSizeOffsetVisitor::visitAllocaInst(AllocaInst &I) { SizeOffsetType ObjectSizeOffsetVisitor::visitArgument(Argument &A) { Type *MemoryTy = A.getPointeeInMemoryValueType(); // No interprocedural analysis is done at the moment. - if (!MemoryTy) { + if (!MemoryTy|| !MemoryTy->isSized()) { ++ObjectVisitorArgument; return unknown(); } |