diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-11-22 22:55:12 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2016-11-22 22:55:12 +0000 |
| commit | 8dbc6b26171167b8ddf66a5f4b6d6fb9baf28336 (patch) | |
| tree | eef30092e1f6e8dc67f6156abf2bdd59e5afd565 /clang/test/SemaCXX/member-init.cpp | |
| parent | 1e6ca44a8e6a8e9d562a7788b64cc6689652ee2c (diff) | |
| download | bcm5719-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.cpp | 20 |
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 { |

