diff options
author | David Blaikie <dblaikie@gmail.com> | 2011-11-17 06:01:57 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2011-11-17 06:01:57 +0000 |
commit | 6fe2965ce722826ae7c3af85271f900286ef20c3 (patch) | |
tree | 89e5edd980075aec80bd66a1d26fb2657f0cd880 /test/CXX/class | |
parent | e6226ae490903717c8c07782f28bc8349543021f (diff) |
Include named unions in union member init checking
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX/class')
-rw-r--r-- | test/CXX/class/class.base/class.base.init/p5-0x.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/CXX/class/class.base/class.base.init/p5-0x.cpp b/test/CXX/class/class.base/class.base.init/p5-0x.cpp new file mode 100644 index 0000000000..e9aa6da7dc --- /dev/null +++ b/test/CXX/class/class.base/class.base.init/p5-0x.cpp @@ -0,0 +1,26 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s + +// [class.base.init]p5 +// A ctor-initializer may initialize a variant member of the constructor’s +// class. If a ctor-initializer specifies more than one mem-initializer for the +// same member or for the same base class, the ctor-initializer is ill-formed. + +union E { + int a; + int b; + E() : a(1), // expected-note{{previous initialization is here}} + b(2) { // expected-error{{initializing multiple members of union}} + } +}; + +union F { + struct { + int a; + int b; + }; + int c; + F() : a(1), // expected-note{{previous initialization is here}} + b(2), + c(3) { // expected-error{{initializing multiple members of union}} + } +}; |