aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-08-10 16:51:53 +0000
committerDouglas Gregor <dgregor@apple.com>2011-08-10 16:51:53 +0000
commit136da1c4320156fe8924139f58fbeed2e32cc6e8 (patch)
tree07dd43565cc5722075cc6a1b58734a23674ffbb2 /lib/Sema/SemaDeclCXX.cpp
parenteaf4fbab08b2636103b2da08412e33baff15ad2a (diff)
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
Diffstat (limited to 'lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--lib/Sema/SemaDeclCXX.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index b5b7a314f0..05706d7d42 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -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;