From c91d12ce8081e00906b5bd7be9234e8ffa6f827d Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Mon, 25 Nov 2013 07:07:05 +0000 Subject: Take cv-qualifiers on fields of class type into account when determining whether a defaulted special member function should be deleted. llvm-svn: 195620 --- clang/lib/Sema/SemaDeclCXX.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'clang/lib/Sema/SemaDeclCXX.cpp') 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), -- cgit v1.2.3