summaryrefslogtreecommitdiff
path: root/test/CXX/dcl.decl/dcl.init/p6.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-07-23 20:44:14 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-07-23 20:44:14 +0000
commit2b6b257f4e5503a7a2675bdb8735693db769f75c (patch)
treee85e046ae7003fe3bcc8b5454cd0fa3f7407b470 /test/CXX/dcl.decl/dcl.init/p6.cpp
parentb4348ed0b7e90c0831b925fbee00b5f179a99796 (diff)
Notes
Diffstat (limited to 'test/CXX/dcl.decl/dcl.init/p6.cpp')
-rw-r--r--test/CXX/dcl.decl/dcl.init/p6.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/test/CXX/dcl.decl/dcl.init/p6.cpp b/test/CXX/dcl.decl/dcl.init/p6.cpp
index e404a1ebc19e..b646ba776a9c 100644
--- a/test/CXX/dcl.decl/dcl.init/p6.cpp
+++ b/test/CXX/dcl.decl/dcl.init/p6.cpp
@@ -4,9 +4,9 @@
// If a program calls for the default initialization of an object of a
// const-qualified type T, T shall be a class type with a
-// user-provided default constructor.
+// user-provided default constructor, except if T has no uninitialized fields.
struct MakeNonPOD { MakeNonPOD(); };
-struct NoUserDefault : public MakeNonPOD { };
+struct NoUserDefault : public MakeNonPOD { int field; };
struct HasUserDefault { HasUserDefault(); };
void test_const_default_init() {
@@ -16,7 +16,7 @@ void test_const_default_init() {
}
// rdar://8501008
-struct s0 {};
+struct s0 { int field; };
struct s1 { static const s0 foo; };
const struct s0 s1::foo; // expected-error{{default initialization of an object of const type 'const struct s0' without a user-provided default constructor}}