summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/dcl_init_aggr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-12-16 18:50:27 +0000
committerDouglas Gregor <dgregor@apple.com>2009-12-16 18:50:27 +0000
commit4f4b18621561084bb55a38ee808d30009dd8fec1 (patch)
treee7e5a1ead9d416169028c986062b7ffc60f0e101 /clang/test/SemaCXX/dcl_init_aggr.cpp
parent22a8a4bfb95d63fc83869c490afc42c693def07c (diff)
downloadbcm5719-llvm-4f4b18621561084bb55a38ee808d30009dd8fec1.tar.gz
bcm5719-llvm-4f4b18621561084bb55a38ee808d30009dd8fec1.zip
When value-initializing a class with no user-defined constructors but
with a non-trivial default constructor, zero-initialize the storage and then call the default constructor. Fixes PR5800. llvm-svn: 91548
Diffstat (limited to 'clang/test/SemaCXX/dcl_init_aggr.cpp')
-rw-r--r--clang/test/SemaCXX/dcl_init_aggr.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/clang/test/SemaCXX/dcl_init_aggr.cpp b/clang/test/SemaCXX/dcl_init_aggr.cpp
index a900411b980..f7dc8f11c70 100644
--- a/clang/test/SemaCXX/dcl_init_aggr.cpp
+++ b/clang/test/SemaCXX/dcl_init_aggr.cpp
@@ -40,17 +40,18 @@ char cv[4] = { 'a', 's', 'd', 'f', 0 }; // expected-error{{excess elements in ar
struct TooFew { int a; char* b; int c; };
TooFew too_few = { 1, "asdf" }; // okay
-struct NoDefaultConstructor { // expected-note 3 {{candidate function}}
+struct NoDefaultConstructor { // expected-note 3 {{candidate function}} \
+ // expected-note{{declared here}}
NoDefaultConstructor(int); // expected-note 3 {{candidate function}}
};
-struct TooFewError {
+struct TooFewError { // expected-error{{implicit default constructor for}}
int a;
- NoDefaultConstructor nodef;
+ NoDefaultConstructor nodef; // expected-note{{member is declared here}}
};
TooFewError too_few_okay = { 1, 1 };
TooFewError too_few_error = { 1 }; // expected-error{{no matching constructor}}
-TooFewError too_few_okay2[2] = { 1, 1 };
+TooFewError too_few_okay2[2] = { 1, 1 }; // expected-note{{implicit default constructor for 'struct TooFewError' first required here}}
TooFewError too_few_error2[2] = { 1 }; // expected-error{{no matching constructor}}
NoDefaultConstructor too_few_error3[3] = { }; // expected-error {{no matching constructor}}
OpenPOWER on IntegriCloud