summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaDeclCXX.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-11-25 07:07:05 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-11-25 07:07:05 +0000
commitc91d12ce8081e00906b5bd7be9234e8ffa6f827d (patch)
tree2095e7cd928a22b49f09e2322f55676922cf24aa /clang/lib/Sema/SemaDeclCXX.cpp
parent52b9cbf880e275a0d51ce7420f61ccaa7979de2c (diff)
downloadbcm5719-llvm-c91d12ce8081e00906b5bd7be9234e8ffa6f827d.tar.gz
bcm5719-llvm-c91d12ce8081e00906b5bd7be9234e8ffa6f827d.zip
Take cv-qualifiers on fields of class type into account when determining
whether a defaulted special member function should be deleted. llvm-svn: 195620
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
-rw-r--r--clang/lib/Sema/SemaDeclCXX.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp
index 54eef40043b..28c5af50f14 100644
--- a/clang/lib/Sema/SemaDeclCXX.cpp
+++ b/clang/lib/Sema/SemaDeclCXX.cpp
@@ -4913,6 +4913,10 @@ struct SpecialMemberDeletionInfo {
// cv-qualifiers on class members don't affect default ctor / dtor calls.
if (CSM == Sema::CXXDefaultConstructor || CSM == Sema::CXXDestructor)
Quals = 0;
+ // cv-qualifiers on class members affect the type of both '*this' and the
+ // argument for an assignment.
+ if (IsAssignment)
+ TQ |= Quals;
return S.LookupSpecialMember(Class, CSM,
ConstArg || (Quals & Qualifiers::Const),
VolatileArg || (Quals & Qualifiers::Volatile),
OpenPOWER on IntegriCloud