File tree 3 files changed +18
-5
lines changed
regression/cbmc-library/Float_lib1
3 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -43,10 +43,10 @@ int main()
43
43
44
44
_Static_assert (__builtin_isnormal (DBL_MIN ), "__builtin_isnormal is constant" );
45
45
46
- _Static_assert (!__builtin_isinf (0 ), "__builtin_isinf is constant" );
46
+ _Static_assert (!__builtin_isinf (0.0 ), "__builtin_isinf is constant" );
47
47
48
48
_Static_assert (
49
- __builtin_isinf_sign (0 ) == 0 , "__builtin_isinf_sign is constant" );
49
+ __builtin_isinf_sign (0.0 ) == 0 , "__builtin_isinf_sign is constant" );
50
50
51
51
#endif
52
52
Original file line number Diff line number Diff line change @@ -2457,6 +2457,15 @@ exprt c_typecheck_baset::do_special_functions(
2457
2457
2458
2458
typecheck_function_call_arguments (expr);
2459
2459
2460
+ const exprt &fp_value = expr.arguments ().front ();
2461
+
2462
+ if (fp_value.type ().id () != ID_floatbv)
2463
+ {
2464
+ error ().source_location = fp_value.source_location ();
2465
+ error () << " non-floating-point argument for " << identifier << eom;
2466
+ throw 0 ;
2467
+ }
2468
+
2460
2469
isinf_exprt isinf_expr (expr.arguments ().front ());
2461
2470
isinf_expr.add_source_location ()=source_location;
2462
2471
@@ -2477,6 +2486,13 @@ exprt c_typecheck_baset::do_special_functions(
2477
2486
2478
2487
const exprt &fp_value = expr.arguments ().front ();
2479
2488
2489
+ if (fp_value.type ().id () != ID_floatbv)
2490
+ {
2491
+ error ().source_location = fp_value.source_location ();
2492
+ error () << " non-floating-point argument for " << identifier << eom;
2493
+ throw 0 ;
2494
+ }
2495
+
2480
2496
isinf_exprt isinf_expr (fp_value);
2481
2497
isinf_expr.add_source_location () = source_location;
2482
2498
Original file line number Diff line number Diff line change 20
20
simplify_exprt::resultt<>
21
21
simplify_exprt::simplify_isinf (const unary_exprt &expr)
22
22
{
23
- if (expr.op ().type ().id () != ID_floatbv)
24
- return unchanged (expr);
25
-
26
23
if (expr.op ().is_constant ())
27
24
{
28
25
ieee_floatt value (to_constant_expr (expr.op ()));
You can’t perform that action at this time.
0 commit comments