зеркало из https://github.com/microsoft/clang-1.git
When adding the base and member initializers for an implicitly-defined
special member function, make sure to classify an explicitly-defaulted copy constructor as a "copy" operation. Fixes PR10622. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137219 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
eaf4fbab08
Коммит
136da1c432
|
@ -2155,7 +2155,8 @@ struct BaseAndFieldInfo {
|
|||
BaseAndFieldInfo(Sema &S, CXXConstructorDecl *Ctor, bool ErrorsInInits)
|
||||
: S(S), Ctor(Ctor), AnyErrorsInInits(ErrorsInInits) {
|
||||
// FIXME: Handle implicit move constructors.
|
||||
if (Ctor->isImplicit() && Ctor->isCopyConstructor())
|
||||
if ((Ctor->isImplicit() || Ctor->isDefaulted()) &&
|
||||
Ctor->isCopyConstructor())
|
||||
IIK = IIK_Copy;
|
||||
else
|
||||
IIK = IIK_Default;
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -std=c++0x -verify %s
|
||||
|
||||
namespace PR10622 {
|
||||
struct foo {
|
||||
const int first;
|
||||
foo(const foo&) = default;
|
||||
};
|
||||
void find_or_insert(const foo& __obj) {
|
||||
foo x(__obj);
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче