Commit b55136a
committed
Use floatbv_mod for floating-point remainder operator
The remainder (%) operator on floating-point types was incorrectly
using CBMC's integer 'mod' operation, which CBMC silently ignores for
floatbv types, producing incorrect verification results.
Use the floatbv_mod binary operator for float/double operands, which
correctly implements IEEE 754 fmod semantics matching Rust's % on
floating-point types.
Resolves #2669
Signed-off-by: Felipe R. Monteiro <felisous@amazon.com>1 parent 39988dc commit b55136a
4 files changed
Lines changed: 42 additions & 3 deletions
File tree
- cprover_bindings/src
- goto_program
- irep
- tests/kani/FloatingPoint
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
| 206 | + | |
206 | 207 | | |
207 | 208 | | |
208 | 209 | | |
| |||
1033 | 1034 | | |
1034 | 1035 | | |
1035 | 1036 | | |
1036 | | - | |
| 1037 | + | |
| 1038 | + | |
1037 | 1039 | | |
1038 | 1040 | | |
1039 | 1041 | | |
| |||
1075 | 1077 | | |
1076 | 1078 | | |
1077 | 1079 | | |
| 1080 | + | |
1078 | 1081 | | |
1079 | 1082 | | |
1080 | 1083 | | |
| |||
1090 | 1093 | | |
1091 | 1094 | | |
1092 | 1095 | | |
1093 | | - | |
| 1096 | + | |
1094 | 1097 | | |
1095 | 1098 | | |
1096 | 1099 | | |
| |||
1186 | 1189 | | |
1187 | 1190 | | |
1188 | 1191 | | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
1189 | 1196 | | |
1190 | | - | |
| 1197 | + | |
1191 | 1198 | | |
1192 | 1199 | | |
1193 | 1200 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
565 | 565 | | |
566 | 566 | | |
567 | 567 | | |
| 568 | + | |
568 | 569 | | |
569 | 570 | | |
570 | 571 | | |
| |||
1455 | 1456 | | |
1456 | 1457 | | |
1457 | 1458 | | |
| 1459 | + | |
1458 | 1460 | | |
1459 | 1461 | | |
1460 | 1462 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| 63 | + | |
63 | 64 | | |
64 | 65 | | |
65 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
0 commit comments