Hello,

The program at the bottom prints
1
2
1
2

Does the code contain undefined behaviour in C++17 (note that the structs
have common initial sequence )?

Łukasz


#include<iostream>

using namespace std;

struct A {
        int first;
        int second;
};

struct B {
        int first;
        int second;
};

struct Test {
        union {
                A a;
                B b;
        };
};

int main() {
        Test t;
        t.a.first = 1;
        t.b.second = 2;
        cout << t.a.first << '\n';
        cout << t.a.second << '\n';
        cout << t.b.first << '\n';
        cout << t.b.second << '\n';
        return 0;
}
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to