summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/member-init.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-11-22 22:55:12 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-11-22 22:55:12 +0000
commit8dbc6b26171167b8ddf66a5f4b6d6fb9baf28336 (patch)
treeeef30092e1f6e8dc67f6156abf2bdd59e5afd565 /clang/test/SemaCXX/member-init.cpp
parent1e6ca44a8e6a8e9d562a7788b64cc6689652ee2c (diff)
downloadbcm5719-llvm-8dbc6b26171167b8ddf66a5f4b6d6fb9baf28336.tar.gz
bcm5719-llvm-8dbc6b26171167b8ddf66a5f4b6d6fb9baf28336.zip
Make diagnostic for use of default member initializer before enclosing class is
complete a little more general; it is produced in other cases than the one that it previously talked about. llvm-svn: 287713
Diffstat (limited to 'clang/test/SemaCXX/member-init.cpp')
-rw-r--r--clang/test/SemaCXX/member-init.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/clang/test/SemaCXX/member-init.cpp b/clang/test/SemaCXX/member-init.cpp
index 65c8873117a..836c1f7455e 100644
--- a/clang/test/SemaCXX/member-init.cpp
+++ b/clang/test/SemaCXX/member-init.cpp
@@ -13,8 +13,8 @@ public:
bool b();
int k;
-struct Recurse {
- int &n = // expected-error {{cannot use defaulted default constructor of 'Recurse' within the class outside of member functions because 'n' has an initializer}}
+struct Recurse { // expected-error {{initializer for 'n' needed}}
+ int &n = // expected-note {{declared here}}
b() ?
Recurse().n : // expected-note {{implicit default constructor for 'Recurse' first required here}}
k;
@@ -128,8 +128,8 @@ A::A() {}
namespace template_default_ctor {
struct A {
template <typename T>
- struct B {
- int m1 = 0; // expected-error {{cannot use defaulted default constructor of 'B' within 'A' outside of member functions because 'm1' has an initializer}}
+ struct B { // expected-error {{initializer for 'm1' needed}}
+ int m1 = 0; // expected-note {{declared here}}
};
// expected-note@+1 {{implicit default constructor for 'template_default_ctor::A::B<int>' first required here}}
enum { NOE = noexcept(B<int>()) };
@@ -138,8 +138,8 @@ struct A {
namespace default_ctor {
struct A {
- struct B {
- int m1 = 0; // expected-error {{cannot use defaulted default constructor of 'B' within 'A' outside of member functions because 'm1' has an initializer}}
+ struct B { // expected-error {{initializer for 'm1' needed}}
+ int m1 = 0; // expected-note {{declared here}}
};
// expected-note@+1 {{implicit default constructor for 'default_ctor::A::B' first required here}}
enum { NOE = noexcept(B()) };
@@ -150,12 +150,12 @@ namespace member_template {
struct A {
template <typename T>
struct B {
- struct C {
- int m1 = 0; // expected-error {{cannot use defaulted default constructor of 'C' within 'A' outside of member functions because 'm1' has an initializer}}
+ struct C { // expected-error {{initializer for 'm1' needed}}
+ int m1 = 0; // expected-note {{declared here}}
};
template <typename U>
- struct D {
- int m1 = 0; // expected-error {{cannot use defaulted default constructor of 'D' within 'A' outside of member functions because 'm1' has an initializer}}
+ struct D { // expected-error {{initializer for 'm1' needed}}
+ int m1 = 0; // expected-note {{declared here}}
};
};
enum {
OpenPOWER on IntegriCloud