diff options
| author | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-10-18 00:44:17 +0000 |
|---|---|---|
| committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2012-10-18 00:44:17 +0000 |
| commit | fb26652c43074c6be6dab71174a9f1ff2f30fa2f (patch) | |
| tree | 19fd36bf2d943c1c14868dbf76a6a8e8d2d70dea /clang | |
| parent | 5e2ec486bbd3f8432ecdab2a20dc402dd6c36845 (diff) | |
| download | bcm5719-llvm-fb26652c43074c6be6dab71174a9f1ff2f30fa2f.tar.gz bcm5719-llvm-fb26652c43074c6be6dab71174a9f1ff2f30fa2f.zip | |
Tests for DR1507.
llvm-svn: 166162
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 3 | ||||
| -rw-r--r-- | clang/test/CXX/dcl.decl/dcl.init/p7.cpp | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 7f3d7ab3599..ec25d531136 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -3611,7 +3611,8 @@ static void TryValueInitialization(Sema &S, // user-provided or deleted default constructor, then the object is // zero-initialized and, if T has a non-trivial default constructor, // default-initialized; - // The 'non-union' here was removed by DR1502. + // The 'non-union' here was removed by DR1502. The 'non-trivial default + // constructor' part was removed by DR1507. if (NeedZeroInitialization) Sequence.AddZeroInitializationStep(Entity.getType()); diff --git a/clang/test/CXX/dcl.decl/dcl.init/p7.cpp b/clang/test/CXX/dcl.decl/dcl.init/p7.cpp new file mode 100644 index 00000000000..03216f4c28a --- /dev/null +++ b/clang/test/CXX/dcl.decl/dcl.init/p7.cpp @@ -0,0 +1,14 @@ +// RUN: %clang_cc1 -std=c++11 -verify %s + +struct NotAggregateBase {}; + +struct A : NotAggregateBase { +private: + A() = default; // expected-note {{here}} +}; +A a = {}; // expected-error {{calling a private constructor}} + +struct B : NotAggregateBase { + explicit B() = default; // expected-note {{here}} +}; +B b = {}; // expected-error {{chosen constructor is explicit}} |

