diff options
author | Cristian Cadar <cristic@cs.stanford.edu> | 2009-07-10 21:13:15 +0000 |
---|---|---|
committer | Cristian Cadar <cristic@cs.stanford.edu> | 2009-07-10 21:13:15 +0000 |
commit | 3951254da613913829b2419b05cb7c3758570e98 (patch) | |
tree | db59cd04fcaa5ac0a1680fa719294b8702dec405 | |
parent | f0a7f0d1b929424776b103cde45b2b60d98f5f48 (diff) | |
download | klee-3951254da613913829b2419b05cb7c3758570e98.tar.gz |
Updated the Not operation for constants. Added extra test case for this.
git-svn-id: https://llvm.org/svn/llvm-project/klee/trunk@75282 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Expr/Expr.cpp | 2 | ||||
-rw-r--r-- | test/Expr/Parser/ConstantFolding.pc | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/lib/Expr/Expr.cpp b/lib/Expr/Expr.cpp index 763a4be1..4d9e5abe 100644 --- a/lib/Expr/Expr.cpp +++ b/lib/Expr/Expr.cpp @@ -423,7 +423,7 @@ ref<ConstantExpr> ConstantExpr::AShr(const ref<ConstantExpr> &RHS) { } ref<ConstantExpr> ConstantExpr::Not() { - return ConstantExpr::alloc(value == 0, Expr::Bool); + return ConstantExpr::alloc(~value); } ref<ConstantExpr> ConstantExpr::Eq(const ref<ConstantExpr> &RHS) { diff --git a/test/Expr/Parser/ConstantFolding.pc b/test/Expr/Parser/ConstantFolding.pc index 56895e53..2c8a4c52 100644 --- a/test/Expr/Parser/ConstantFolding.pc +++ b/test/Expr/Parser/ConstantFolding.pc @@ -190,3 +190,8 @@ array a[64] : w32 -> w8 = symbolic # RUN: grep -A 2 \"# Query 36$\" %t > %t2 # RUN: grep \"(query .. false .(Eq 0 (Read w8 0 a)).\" %t2 (query [] false [(Not (Not (Eq 0 (Read w8 0 a))))]) + +# Check -- !Const +# RUN: grep -A 2 \"# Query 37$\" %t > %t2 +# RUN: grep \"(query .. false .true.\" %t2 +(query [] false [(Eq (Not w32 0xdeadbeef) 0x21524110)]) |