Add _FloatN, _FloatNx tests for __builtin_fpclassify.
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / pr65077.c
blobf57356c60bbdc07c19703cc073f811dcf9f381a6
1 /* { dg-do run } */
3 extern void abort (void);
4 extern void *memcpy(void *, const void *, __SIZE_TYPE__);
6 typedef struct {
7 void *v1;
8 void *v2;
9 void *v3;
10 union {
11 void *f1;
12 void *f2;
13 } u;
14 } S;
17 S *getS();
18 void verify_p(void *p);
19 double *getP(void *p);
21 void memcpy_bug()
23 S *s;
24 double *p = getP(0);
26 if (p) {
27 int intSptr[sizeof(S*)/sizeof(int)];
28 unsigned i = 0;
29 for (i = 0; i < sizeof(intSptr)/sizeof(*intSptr); ++i) {
30 intSptr[i] = (int) p[i];
32 memcpy(&s, intSptr, sizeof(intSptr));
33 (s)->u.f1 = p;
34 verify_p((s)->u.f1);
35 } else {
36 s = getS();
38 verify_p(s->u.f1);
41 double P[4];
43 double *getP(void *p) {
44 union u {
45 void *p;
46 int i[2];
47 } u;
48 u.p = P;
49 P[0] = u.i[0];
50 P[1] = u.i[1];
51 return P;
54 S *getS()
56 return 0;
59 void verify_p(void *p)
61 if (p != P)
62 abort ();
65 int main(int argc, char *argv[])
67 memcpy_bug();
68 return 0;