diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-12-28 09:25:16 -0500 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-12-28 09:45:37 -0500 |
commit | 0edf99950e6234159c99710838f21d3629d756af (patch) | |
tree | 1a62df73d73480d7f665581212b42cbc24e6319f /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | aaeae842ef821063c5c6ce5fada4e62967c14b96 (diff) | |
download | llvm-0edf99950e6234159c99710838f21d3629d756af.zip llvm-0edf99950e6234159c99710838f21d3629d756af.tar.gz llvm-0edf99950e6234159c99710838f21d3629d756af.tar.bz2 |
[Analysis] allow caller to choose signed/unsigned when computing constant range
We should not lose analysis precision if an 'add' has both no-wrap
flags (nsw and nuw) compared to just one or the other.
This patch is modeled on a similar construct that was added with
D59386.
I don't think it is possible to expose a problem with an unsigned
compare because of the way this was coded (nuw is handled first).
InstCombine has an assert that fires with the example from:
https://github.com/llvm/llvm-project/issues/52884
...because it was expecting InstSimplify to handle this kind of
pattern with an smax.
Fixes #52884
Differential Revision: https://reviews.llvm.org/D116322
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions