1*0f65d59eSDavid Blaikie // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2*0f65d59eSDavid Blaikie 3*0f65d59eSDavid Blaikie // [class.base.init]p5 4*0f65d59eSDavid Blaikie // A ctor-initializer may initialize a variant member of the constructor’s 5*0f65d59eSDavid Blaikie // class. If a ctor-initializer specifies more than one mem-initializer for the 6*0f65d59eSDavid Blaikie // same member or for the same base class, the ctor-initializer is ill-formed. 7*0f65d59eSDavid Blaikie 8*0f65d59eSDavid Blaikie union E { 9*0f65d59eSDavid Blaikie int a; 10*0f65d59eSDavid Blaikie int b; E()11*0f65d59eSDavid Blaikie E() : a(1), // expected-note{{previous initialization is here}} 12*0f65d59eSDavid Blaikie b(2) { // expected-error{{initializing multiple members of union}} 13*0f65d59eSDavid Blaikie } 14*0f65d59eSDavid Blaikie }; 15*0f65d59eSDavid Blaikie 16*0f65d59eSDavid Blaikie union F { 17*0f65d59eSDavid Blaikie struct { 18*0f65d59eSDavid Blaikie int a; 19*0f65d59eSDavid Blaikie int b; 20*0f65d59eSDavid Blaikie }; 21*0f65d59eSDavid Blaikie int c; F()22*0f65d59eSDavid Blaikie F() : a(1), // expected-note{{previous initialization is here}} 23*0f65d59eSDavid Blaikie b(2), 24*0f65d59eSDavid Blaikie c(3) { // expected-error{{initializing multiple members of union}} 25*0f65d59eSDavid Blaikie } 26*0f65d59eSDavid Blaikie }; 27