C++11 [class.ctor]p5 says that
A defaulted default constructor for a class X is defined as deleted if [...]
- X is a union and all of its variant members are of const-qualified type.
A pedantic reading therefore says that
union X { };
has a deleted default constructor, which is both silly and almost
certainly unintended. Pretend as if this this read
- X is a union with one or more variant members, and all of its
variant members are of const-qualified type.
llvm-svn: 151394
diff --git a/clang/test/SemaCXX/cxx0x-deleted-default-ctor.cpp b/clang/test/SemaCXX/cxx0x-deleted-default-ctor.cpp
index 0f08635..f6e5593 100644
--- a/clang/test/SemaCXX/cxx0x-deleted-default-ctor.cpp
+++ b/clang/test/SemaCXX/cxx0x-deleted-default-ctor.cpp
@@ -121,11 +121,11 @@
// See also rdar://problem/8125400.
namespace empty {
- static union {}; // expected-error {{implicitly-deleted default constructor}} expected-note {{here}}
- static union { union {}; }; // expected-error {{implicitly-deleted default constructor}} expected-note {{here}}
+ static union {};
+ static union { union {}; };
static union { struct {}; };
- static union { union { union {}; }; }; // expected-error {{implicitly-deleted default constructor}} expected-note {{here}}
+ static union { union { union {}; }; };
static union { union { struct {}; }; };
- static union { struct { union {}; }; }; // expected-error {{implicitly-deleted default constructor}} expected-note {{here}}
+ static union { struct { union {}; }; };
static union { struct { struct {}; }; };
}