diff options
| author | Ted Kremenek <kremenek@apple.com> | 2008-07-18 15:54:51 +0000 |
|---|---|---|
| committer | Ted Kremenek <kremenek@apple.com> | 2008-07-18 15:54:51 +0000 |
| commit | b1c91bfc45f46c1e01f8cbeca807da4bd08e0940 (patch) | |
| tree | 73c8c4156e888d8202ac3b09d007c1af67a52f95 /clang/lib/Analysis/RValues.cpp | |
| parent | 6a62d908c343df47b272948c9ce96d1df5e3b551 (diff) | |
| download | bcm5719-llvm-b1c91bfc45f46c1e01f8cbeca807da4bd08e0940.tar.gz bcm5719-llvm-b1c91bfc45f46c1e01f8cbeca807da4bd08e0940.zip | |
Fix regression by explicitly checking if we are negating a SymIntConstantVal.
llvm-svn: 53753
Diffstat (limited to 'clang/lib/Analysis/RValues.cpp')
| -rw-r--r-- | clang/lib/Analysis/RValues.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Analysis/RValues.cpp b/clang/lib/Analysis/RValues.cpp index 60c349420a3..ed3dba925eb 100644 --- a/clang/lib/Analysis/RValues.cpp +++ b/clang/lib/Analysis/RValues.cpp @@ -55,6 +55,20 @@ RVal::symbol_iterator RVal::symbol_end() const { } //===----------------------------------------------------------------------===// +// Useful predicates. +//===----------------------------------------------------------------------===// + +bool RVal::isZeroConstant() const { + if (isa<lval::ConcreteInt>(*this)) + return cast<lval::ConcreteInt>(*this).getValue() == 0; + else if (isa<nonlval::ConcreteInt>(*this)) + return cast<nonlval::ConcreteInt>(*this).getValue() == 0; + else + return false; +} + + +//===----------------------------------------------------------------------===// // Transfer function dispatch for Non-LVals. //===----------------------------------------------------------------------===// |

