summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/TreeTransform.h
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2014-04-17 01:12:17 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2014-04-17 01:12:17 +0000
commit688866ba3eb97738b5f7d5acedb73c06a285ea2f (patch)
treeb316ba457c118932d64416516abda3aa4cc3f30a /clang/lib/Sema/TreeTransform.h
parent649f030819951ebd4e1c28bf479134e966ebe5e3 (diff)
downloadbcm5719-llvm-688866ba3eb97738b5f7d5acedb73c06a285ea2f.tar.gz
bcm5719-llvm-688866ba3eb97738b5f7d5acedb73c06a285ea2f.zip
PR19452: Implement more of [over.match.oper]p3's restrictions on which non-member overloaded operators can be found when no operand is of class type. We used to fail to implement this rule if there was an operand of dependent type.
llvm-svn: 206435
Diffstat (limited to 'clang/lib/Sema/TreeTransform.h')
-rw-r--r--clang/lib/Sema/TreeTransform.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/Sema/TreeTransform.h b/clang/lib/Sema/TreeTransform.h
index 27cf43fd742..4094f5a7166 100644
--- a/clang/lib/Sema/TreeTransform.h
+++ b/clang/lib/Sema/TreeTransform.h
@@ -9760,9 +9760,10 @@ TreeTransform<Derived>::RebuildCXXOperatorCallExpr(OverloadedOperatorKind Op,
if (UnresolvedLookupExpr *ULE = dyn_cast<UnresolvedLookupExpr>(Callee)) {
assert(ULE->requiresADL());
- // FIXME: Do we have to check
- // IsAcceptableNonMemberOperatorCandidate for each of these?
- Functions.append(ULE->decls_begin(), ULE->decls_end());
+ for (auto I = ULE->decls_begin(), E = ULE->decls_end(); I != E; ++I)
+ SemaRef.addOverloadedOperatorToUnresolvedSet(
+ Functions, I.getPair(), First->getType(),
+ Second ? Second->getType() : QualType());
} else {
// If we've resolved this to a particular non-member function, just call
// that function. If we resolved it to a member function,
OpenPOWER on IntegriCloud