diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-09-05 02:13:09 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2011-09-05 02:13:09 +0000 |
commit | a528507418d65b793ad72c118f6007b0effe17e0 (patch) | |
tree | 0ff795af28f767e3629ba592fc72a3f762c599a1 /clang/test/SemaCXX/aggregate-initialization.cpp | |
parent | 0ca1ad0783ea805d8af255a42f55b0eda5a55e4e (diff) | |
download | bcm5719-llvm-a528507418d65b793ad72c118f6007b0effe17e0.tar.gz bcm5719-llvm-a528507418d65b793ad72c118f6007b0effe17e0.zip |
Implement the suggested resolution of WG21 N3307 issue 19: When determining whether a class is an aggregate in C++0x, treat all functions which are neither deleted nor defaulted as user-provided, not just special member functions. The wording of the standard only defines the term "user-provided" for special member functions, but the intent seems to be that any function can be user-provided.
llvm-svn: 139111
Diffstat (limited to 'clang/test/SemaCXX/aggregate-initialization.cpp')
-rw-r--r-- | clang/test/SemaCXX/aggregate-initialization.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/test/SemaCXX/aggregate-initialization.cpp b/clang/test/SemaCXX/aggregate-initialization.cpp index b9e69b00b7f..90d0ead9204 100644 --- a/clang/test/SemaCXX/aggregate-initialization.cpp +++ b/clang/test/SemaCXX/aggregate-initialization.cpp @@ -2,8 +2,8 @@ // Verify that we can't initialize non-aggregates with an initializer // list. -// FIXME: Note that due to a (likely) standard bug, this is technically an -// aggregate. +// Note that due to a (likely) standard bug, this is technically an aggregate, +// but we do not treat it as one. struct NonAggr1 { NonAggr1(int) { } @@ -24,7 +24,7 @@ struct NonAggr4 { virtual void f(); }; -NonAggr1 na1 = { 17 }; +NonAggr1 na1 = { 17 }; // expected-error{{non-aggregate type 'NonAggr1' cannot be initialized with an initializer list}} NonAggr2 na2 = { 17 }; // expected-error{{non-aggregate type 'NonAggr2' cannot be initialized with an initializer list}} NonAggr3 na3 = { 17 }; // expected-error{{non-aggregate type 'NonAggr3' cannot be initialized with an initializer list}} NonAggr4 na4 = { 17 }; // expected-error{{non-aggregate type 'NonAggr4' cannot be initialized with an initializer list}} |