| // PR debug/65678 | |
| // { dg-do compile } | |
| long long v; | |
| static int | |
| bar (double x) | |
| { | |
| #if __SIZEOF_DOUBLE__ == __SIZEOF_LONG_LONG__ | |
| __builtin_memmove (&v, &x, sizeof v); | |
| #else | |
| (void) x; | |
| v = 0; | |
| #endif | |
| return v; | |
| } | |
| struct A | |
| { | |
| A (double x) : a (bar (x)) {} | |
| int m1 (); | |
| int m2 () { int b = a; return b; } | |
| int a; | |
| }; | |
| void foo (); | |
| void | |
| baz (double x) | |
| { | |
| int c = A (x).m2 (); | |
| int d = A (x).m1 (); | |
| if (d) | |
| foo (); | |
| } |