summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaOverload.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-11-08 17:16:59 +0000
committerDouglas Gregor <dgregor@apple.com>2010-11-08 17:16:59 +0000
commitbd6b17f4efb44b1b002600e67c28454f05ff8665 (patch)
tree927788525c6463a06aea9c7b8b46481ae421868d /clang/lib/Sema/SemaOverload.cpp
parent2cd1fd4a828812e3b45b5144ae8cb7ce950792cd (diff)
downloadbcm5719-llvm-bd6b17f4efb44b1b002600e67c28454f05ff8665.tar.gz
bcm5719-llvm-bd6b17f4efb44b1b002600e67c28454f05ff8665.zip
Improve our handling of C++ [class.copy]p3, which specifies that a
constructor template will not be used to copy a class object to a value of its own type. We were eliminating all constructor templates whose specializations look like a copy constructor, which eliminated important candidates. Fixes PR8182. llvm-svn: 118418
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 3ed79fd4613..440f5acdbc2 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -3457,7 +3457,7 @@ Sema::AddOverloadCandidate(FunctionDecl *Function,
// of a class object to an object of its class type.
QualType ClassType = Context.getTypeDeclType(Constructor->getParent());
if (NumArgs == 1 &&
- Constructor->isCopyConstructorLikeSpecialization() &&
+ Constructor->isSpecializationCopyingObject() &&
(Context.hasSameUnqualifiedType(ClassType, Args[0]->getType()) ||
IsDerivedFrom(Args[0]->getType(), ClassType)))
return;
OpenPOWER on IntegriCloud