blob: 61843174c574709a9dc806586cd6e6d5efb710fe [file] [log] [blame]
/*
TEST_OUTPUT:
---
fail_compilation/fail11151.d(30): Error: overlapping initialization for field a and y
---
*/
//extern(C) int printf(const char*, ...);
union U
{
struct
{
align(1) long a;
align(1) int b;
}
struct
{
align(1) int x;
align(1) long y;
}
}
void main()
{
static assert(U.a.offsetof == 0);
static assert(U.b.offsetof == 8);
static assert(U.x.offsetof == 0);
static assert(U.y.offsetof == 4);
U u = {a:1, y:2}; // overlapped initializing U.a and U.y
//printf("u.a = %lld\n", u.a); // 8589934593 , Wrong!
//printf("u.b = %d\n", u.b); // 0
//printf("u.x = %d\n", u.x); // 1
//printf("u.y = %lld\n", u.y); // 2
}