aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/StackSafetyAnalysis.cpp
diff options
context:
space:
mode:
authorVitaly Buka <vitalybuka@google.com>2020-05-26 22:05:41 -0700
committerVitaly Buka <vitalybuka@google.com>2020-05-26 23:22:36 -0700
commitd0f1f5adfa574ece80d566f400ebb689ae822a16 (patch)
treeef7125543b8f43c10caadd3c7f732132bdec7182 /llvm/lib/Analysis/StackSafetyAnalysis.cpp
parent6bbaa62d26b6061c93eb62c82048c14014ab7bd7 (diff)
downloadllvm-d0f1f5adfa574ece80d566f400ebb689ae822a16.zip
llvm-d0f1f5adfa574ece80d566f400ebb689ae822a16.tar.gz
llvm-d0f1f5adfa574ece80d566f400ebb689ae822a16.tar.bz2
[StackSafety] Use getSignedRange for offsets
Diffstat (limited to 'llvm/lib/Analysis/StackSafetyAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/StackSafetyAnalysis.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/StackSafetyAnalysis.cpp b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
index 10b9f14..f72197e 100644
--- a/llvm/lib/Analysis/StackSafetyAnalysis.cpp
+++ b/llvm/lib/Analysis/StackSafetyAnalysis.cpp
@@ -226,10 +226,10 @@ ConstantRange StackSafetyLocalAnalysis::offsetFrom(Value *Addr, Value *Base) {
AllocaOffsetRewriter Rewriter(SE, Base);
const SCEV *Expr = Rewriter.visit(SE.getSCEV(Addr));
- ConstantRange Offset = SE.getUnsignedRange(Expr).zextOrTrunc(PointerSize);
- if (Offset.isEmptySet())
+ ConstantRange Offset = SE.getSignedRange(Expr);
+ if (Offset.isEmptySet() || Offset.isFullSet() || Offset.isSignWrappedSet())
return UnknownRange;
- return Offset;
+ return Offset.sextOrTrunc(PointerSize);
}
ConstantRange