diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-11-25 07:07:05 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2013-11-25 07:07:05 +0000 |
commit | c91d12ce8081e00906b5bd7be9234e8ffa6f827d (patch) | |
tree | 2095e7cd928a22b49f09e2322f55676922cf24aa /clang/lib/Sema/SemaDeclCXX.cpp | |
parent | 52b9cbf880e275a0d51ce7420f61ccaa7979de2c (diff) | |
download | bcm5719-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.cpp | 4 |
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), |