1*a6728382SDmitry Vyukov // RUN: %clangxx -O2 %s -o %t && %run %t 2>&1 | FileCheck %s
2*a6728382SDmitry Vyukov 
3*a6728382SDmitry Vyukov #include <math.h>
4*a6728382SDmitry Vyukov #include <stdio.h>
5*a6728382SDmitry Vyukov #include <stdlib.h>
6*a6728382SDmitry Vyukov 
main()7*a6728382SDmitry Vyukov int main() {
8*a6728382SDmitry Vyukov   for (int i = 0; i < 10000; i++) {
9*a6728382SDmitry Vyukov     volatile double x = 10;
10*a6728382SDmitry Vyukov     int exp = 0;
11*a6728382SDmitry Vyukov     double y = frexp(x, &exp);
12*a6728382SDmitry Vyukov     if (y != 0.625 || exp != 4) {
13*a6728382SDmitry Vyukov       printf("i=%d y=%lf exp=%d\n", i, y, exp);
14*a6728382SDmitry Vyukov       exit(1);
15*a6728382SDmitry Vyukov     }
16*a6728382SDmitry Vyukov   }
17*a6728382SDmitry Vyukov   fprintf(stderr, "DONE\n");
18*a6728382SDmitry Vyukov   // CHECK: DONE
19*a6728382SDmitry Vyukov   return 0;
20*a6728382SDmitry Vyukov }
21