summaryrefslogtreecommitdiff
path: root/Test/floats/float13.bpl
diff options
context:
space:
mode:
authorGravatar Checkmate50 <dgeisler50@gmail.com>2016-06-06 21:09:06 -0600
committerGravatar Checkmate50 <dgeisler50@gmail.com>2016-06-06 21:09:06 -0600
commit5cff8cd77c629ec8e48a2498b1e704173306586a (patch)
tree8ab0b6fbda08b12e9b2635efdb5806371197c58c /Test/floats/float13.bpl
parentc19c2495497d0dfa7aaf871cf833cd5e5f986d33 (diff)
finished testing, fixed several minor compiler bugs
Diffstat (limited to 'Test/floats/float13.bpl')
-rw-r--r--Test/floats/float13.bpl23
1 files changed, 23 insertions, 0 deletions
diff --git a/Test/floats/float13.bpl b/Test/floats/float13.bpl
new file mode 100644
index 00000000..4fe25140
--- /dev/null
+++ b/Test/floats/float13.bpl
@@ -0,0 +1,23 @@
+// RUN: %boogie -proverWarnings:1 "%s" > "%t"
+// RUN: %diff "%s.expect" "%t"
+
+function {:builtin "(_ to_fp 11 53) RNE"} TO_FLOAT64_INT(int) returns (float64);
+function {:builtin "(_ to_fp 11 53) RNE"} TO_FLOAT64_REAL(real) returns (float64);
+
+procedure main() returns () {
+ var x : float64;
+ var y : float64;
+
+ havoc x;
+ assume(x >= TO_FLOAT64_INT(0) && x <= TO_FLOAT64_INT(10));
+
+ y := x*x - x;
+ if (y >= TO_FLOAT64_INT(0)) {
+ y := x / TO_FLOAT64_INT(10);
+ }
+ else {
+ y := x*x + TO_FLOAT64_INT(2);
+ }
+
+ assert(y >= TO_FLOAT64_INT(0) && y <= TO_FLOAT64_INT(105));
+} \ No newline at end of file