diff options
author | Sebastian Redl <sebastian.redl@getdesigned.at> | 2012-04-01 19:54:59 +0000 |
---|---|---|
committer | Sebastian Redl <sebastian.redl@getdesigned.at> | 2012-04-01 19:54:59 +0000 |
commit | 70e24fccc8ef4aa8be03a778e9655bfcfa79dd14 (patch) | |
tree | 6efa1d81ce9377e7d4ecf8d481b665d76976c1a9 /include/clang | |
parent | 4a5f724538cbc275370c9504e8169ce92503256c (diff) |
Properly handle explicit constructors in list-initialization. Fixes PR12120.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153849 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang')
-rw-r--r-- | include/clang/Basic/DiagnosticSemaKinds.td | 4 | ||||
-rw-r--r-- | include/clang/Sema/Initialization.h | 4 |
2 files changed, 7 insertions, 1 deletions
diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index 32ac7be9e5..863f9db164 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -1189,6 +1189,10 @@ def warn_cxx98_compat_temp_copy : Warning< "an inaccessible constructor|find no viable constructor|find ambiguous " "constructors|invoke a deleted constructor}0 in C++98">, InGroup<CXX98CompatBindToTemporaryCopy>, DefaultIgnore; +def err_selected_explicit_constructor : Error< + "chosen constructor is explicit in copy-initialization">; +def note_constructor_declared_here : Note< + "constructor declared here">; // C++11 decltype def err_decltype_in_declarator : Error< diff --git a/include/clang/Sema/Initialization.h b/include/clang/Sema/Initialization.h index 9040703436..6d92df6322 100644 --- a/include/clang/Sema/Initialization.h +++ b/include/clang/Sema/Initialization.h @@ -719,7 +719,9 @@ public: FK_PlaceholderType, /// \brief Failed to initialize a std::initializer_list because copy /// construction of some element failed. - FK_InitListElementCopyFailure + FK_InitListElementCopyFailure, + /// \brief List-copy-initialization chose an explicit constructor. + FK_ExplicitConstructor }; private: |