aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/StackSafetyAnalysis.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Analysis/StackSafetyAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/StackSafetyAnalysis.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/StackSafetyAnalysis.cpp b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
index 9c937b0..a447326 100644
--- a/llvm/lib/Analysis/StackSafetyAnalysis.cpp
+++ b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
@@ -345,12 +345,18 @@ bool StackSafetyLocalAnalysis::analyzeAllUses(Value *Ptr, UseInfo &US) {
assert(isa<Function>(Callee) || isa<GlobalAlias>(Callee));
auto B = CB.arg_begin(), E = CB.arg_end();
+ int Found = 0;
for (auto A = B; A != E; ++A) {
if (A->get() == V) {
+ ++Found;
ConstantRange Offset = offsetFrom(UI, Ptr);
US.Calls.emplace_back(Callee, A - B, Offset);
}
}
+ if (!Found) {
+ US.updateRange(UnknownRange);
+ return false;
+ }
break;
}