// { dg-do run } | |
// Bug: g++ crashed on empty initializers for unions. | |
// Bug: gcc and g++ didn't zero unions with empty initializers. | |
// Submitted by J"orn Rennecke <amylaar@cygnus.co.uk> | |
extern "C" void exit (int); | |
typedef union u | |
{ | |
union u *up; | |
void *vp; | |
} u; | |
static u v = {}; | |
void bar (u); | |
void baz (u); | |
void foo() | |
{ | |
u w = {}; | |
u x = { &v }; | |
baz (x); | |
bar (w); | |
} | |
void baz (u w) { } | |
void bar (u w) | |
{ | |
if (w.up) | |
exit (1); | |
} | |
int main () | |
{ | |
foo (); | |
return 0; | |
} |