Skip to content

Commit c3603e3

Browse files
author
Daniel Kroening
committed
added a test for raw __builtin_fpclassify
1 parent 52595bd commit c3603e3

File tree

1 file changed

+13
-0
lines changed
  • regression/cbmc/Float_lib1

1 file changed

+13
-0
lines changed

regression/cbmc/Float_lib1/main.c

+13
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,19 @@ int main() {
1919
assert(fpclassify(-0.0)==FP_ZERO);
2020
#endif
2121

22+
#if !defined(__clang__) && defined(__GNUC__)
23+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, DBL_MAX+DBL_MAX)==1);
24+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, 0*(DBL_MAX+DBL_MAX))==0);
25+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, 1.0)==2);
26+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, DBL_MIN)==2);
27+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, DBL_MIN/2)==3);
28+
assert(__builtin_fpclassify(0, 1, 2, 3, 4, -0.0)==4);
29+
30+
// these are compile-time
31+
_Static_assert(__builtin_fpclassify(0, 1, 2, 3, 4, -0.0)==4,
32+
"__builtin_fpclassify is constant");
33+
#endif
34+
2235
assert(signbit(-1.0)!=0);
2336
assert(signbit(1.0)==0);
2437
}

0 commit comments

Comments
 (0)