/* Verify that structure return doesn't invoke memcpy on | |
overlapping objects. */ | |
extern void abort (void); | |
struct S { | |
char stuff[1024]; | |
}; | |
union U { | |
struct { | |
int space; | |
struct S s; | |
} a; | |
struct { | |
struct S s; | |
int space; | |
} b; | |
}; | |
struct S f(struct S *); | |
void g(union U *); | |
void main_test(void) | |
{ | |
union U u; | |
u.b.s = f(&u.a.s); | |
u.a.s = f(&u.b.s); | |
g(&u); | |
} |