@@ -905,11 +905,14 @@ float sqrtf(float f)
905
905
// number of exponent and significand bits. Thus they are
906
906
// given implicitly...
907
907
908
+ #pragma CPROVER check push
909
+ #pragma CPROVER check disable "float-overflow"
908
910
float lowerSquare = lower * lower ;
909
911
__CPROVER_assume (__CPROVER_isnormalf (lowerSquare ));
910
912
911
913
float upper = nextUpf (lower );
912
914
float upperSquare = upper * upper ; // Might be +Inf
915
+ #pragma CPROVER check pop
913
916
914
917
// Restrict these to bound f and thus compute the possible
915
918
// values for the square root. Note that the lower bound
@@ -992,11 +995,14 @@ double sqrt(double d)
992
995
__CPROVER_assume (lower > 0.0 );
993
996
__CPROVER_assume (__CPROVER_isnormald (lower ));
994
997
998
+ #pragma CPROVER check push
999
+ #pragma CPROVER check disable "float-overflow"
995
1000
double lowerSquare = lower * lower ;
996
1001
__CPROVER_assume (__CPROVER_isnormald (lowerSquare ));
997
1002
998
1003
double upper = nextUp (lower );
999
1004
double upperSquare = upper * upper ; // Might be +Inf
1005
+ #pragma CPROVER check pop
1000
1006
1001
1007
__CPROVER_assume (lowerSquare <= d );
1002
1008
__CPROVER_assume (d < upperSquare );
@@ -1066,11 +1072,14 @@ long double sqrtl(long double d)
1066
1072
__CPROVER_assume (lower > 0.0l );
1067
1073
__CPROVER_assume (__CPROVER_isnormalld (lower ));
1068
1074
1075
+ #pragma CPROVER check push
1076
+ #pragma CPROVER check disable "float-overflow"
1069
1077
long double lowerSquare = lower * lower ;
1070
1078
__CPROVER_assume (__CPROVER_isnormalld (lowerSquare ));
1071
1079
1072
1080
long double upper = nextUpl (lower );
1073
1081
long double upperSquare = upper * upper ; // Might be +Inf
1082
+ #pragma CPROVER check pop
1074
1083
1075
1084
__CPROVER_assume (lowerSquare <= d );
1076
1085
__CPROVER_assume (d < upperSquare );
0 commit comments