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/cxx1y-initializer-aggregates.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/cxx1y-initializer-aggregates.cpp')
-rw-r--r-- | clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp b/clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp index 9b542403def..3d5e7726a17 100644 --- a/clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp +++ b/clang/test/SemaCXX/cxx1y-initializer-aggregates.cpp @@ -61,3 +61,19 @@ namespace nested_aggregate_init { }; static_assert(B(6).f() == 18, ""); } + +namespace use_self { + struct FibTree { + int n; + FibTree *l = // expected-note {{declared here}} + n > 1 ? new FibTree{n-1} : &fib0; // expected-error {{default member initializer for 'l' needed}} + FibTree *r = // expected-note {{declared here}} + n > 2 ? new FibTree{n-2} : &fib0; // expected-error {{default member initializer for 'r' needed}} + int v = l->v + r->v; + + static FibTree fib0; + }; + FibTree FibTree::fib0{0, nullptr, nullptr, 1}; + + int fib(int n) { return FibTree{n}.v; } +} |