xref: /llvm-project/lldb/test/API/lang/cpp/union-static-data-members/main.cpp (revision f74aaca63202cabb512c78fe19196ff348d436a8)
1*f74aaca6SMichael Buch union Foo {
2*f74aaca6SMichael Buch   int val = 42;
3*f74aaca6SMichael Buch   static const int sVal1 = -42;
4*f74aaca6SMichael Buch   static Foo sVal2;
5*f74aaca6SMichael Buch };
6*f74aaca6SMichael Buch 
7*f74aaca6SMichael Buch Foo Foo::sVal2{};
8*f74aaca6SMichael Buch 
9*f74aaca6SMichael Buch namespace {
10*f74aaca6SMichael Buch union Bar {
11*f74aaca6SMichael Buch   int val = 137;
12*f74aaca6SMichael Buch   static const int sVal1 = -137;
13*f74aaca6SMichael Buch   static Bar sVal2;
14*f74aaca6SMichael Buch };
15*f74aaca6SMichael Buch 
16*f74aaca6SMichael Buch Bar Bar::sVal2{};
17*f74aaca6SMichael Buch } // namespace
18*f74aaca6SMichael Buch 
main()19*f74aaca6SMichael Buch int main() {
20*f74aaca6SMichael Buch   Foo foo;
21*f74aaca6SMichael Buch   Bar bar;
22*f74aaca6SMichael Buch   auto sum = Bar::sVal1 + Foo::sVal1 + Foo::sVal2.val + Bar::sVal2.val;
23*f74aaca6SMichael Buch 
24*f74aaca6SMichael Buch   return 0;
25*f74aaca6SMichael Buch }
26