aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/eval
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-12-17 01:39:43 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2021-04-19 00:56:42 +0200
commit94750498b1d3ef03fd78920b70e7330072dbb4ed (patch)
tree3b31f4eac1903318fdc76bbd765a787167231313 /validation/eval
parent98075702ca78ff79e568a6b8004ee5fad7b0bfbe (diff)
downloadsparse-dev-94750498b1d3ef03fd78920b70e7330072dbb4ed.tar.gz
remove early simplification of casts during evaluation
The current code will simplify away some casts at evaluation time but doesn't take in account some special cases: * (bool)~<int> is not equivalent to ~(bool)<int> (anything not all 0 or 1) * (float)~<int> is not equivalent to ~(float)<int> which doesn't make sense. * (int)(float)<int> is not a no-op if the (float) overflows This kind of simplification is better done on the IR where the different kind of casts correspond to distinct instructions. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/eval')
-rw-r--r--validation/eval/not-cast-bool.c1
-rw-r--r--validation/eval/not-cast-float.c1
2 files changed, 0 insertions, 2 deletions
diff --git a/validation/eval/not-cast-bool.c b/validation/eval/not-cast-bool.c
index af422412..acd8bbf2 100644
--- a/validation/eval/not-cast-bool.c
+++ b/validation/eval/not-cast-bool.c
@@ -8,7 +8,6 @@ static _Bool foo(void)
/*
* check-name: not-cast-bool
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-returns: 1
diff --git a/validation/eval/not-cast-float.c b/validation/eval/not-cast-float.c
index 445b91d7..d474d69b 100644
--- a/validation/eval/not-cast-float.c
+++ b/validation/eval/not-cast-float.c
@@ -8,7 +8,6 @@ static int foo(void)
/*
* check-name: eval-bool-zext-neg
* check-command: test-linearize -Wno-decl $file
- * check-known-to-fail
*
* check-output-ignore
* check-output-returns: 1