summaryrefslogtreecommitdiff
path: root/test/regression/singlefloats.c
blob: 9e3c582428d5e26cb0c7f5cb34395b28b632e868 (plain)
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
30
31
32
/* This caused an internal compiler error in CompCert 2.2.
   (RTLtyping failure, because y is used both as a float32 and a float64). */

typedef union
{
  float value;
  unsigned int word;
} shape;

float
expf(float x)
{
        float y,hi;

        y = 1/hi;

        shape A;
        A.value = y;

        shape B;
        B.word = A.word;
        y = B.value;

        return y;
}

/* Another internal compiler error in CompCert 2.2.  */

void store(volatile float * p, double x)
{
  *p = x + 1.0;
}