summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaExpr.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-10-13 18:10:35 +0000
committerDouglas Gregor <dgregor@apple.com>2011-10-13 18:10:35 +0000
commitcda2270217228e128893927e0be5e6581d1615d3 (patch)
tree4ae16d2079849f19777a705c54126a84417167d1 /clang/lib/Sema/SemaExpr.cpp
parent1b282f9619f68a60d4b8f4dd0c68b0a07e1a1293 (diff)
downloadbcm5719-llvm-cda2270217228e128893927e0be5e6581d1615d3.tar.gz
bcm5719-llvm-cda2270217228e128893927e0be5e6581d1615d3.zip
Allow calling an overloaded function set by taking the address of the
functions, e.g., (&f)(0). Fixes <rdar://problem/9803316>. llvm-svn: 141877
Diffstat (limited to 'clang/lib/Sema/SemaExpr.cpp')
-rw-r--r--clang/lib/Sema/SemaExpr.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index d0ad5c8bfd2..bfe98498d89 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -3549,8 +3549,8 @@ Sema::ActOnCallExpr(Scope *S, Expr *Fn, SourceLocation LParenLoc,
if (Fn->getType() == Context.OverloadTy) {
OverloadExpr::FindResult find = OverloadExpr::find(Fn);
- // We aren't supposed to apply this logic if there's an '&' involved.
- if (!find.IsAddressOfOperand) {
+ // We aren't supposed to apply this logic for if there's an '&' involved.
+ if (!(find.IsAddressOfOperand && find.HasFormOfMemberPointer)) {
OverloadExpr *ovl = find.Expression;
if (isa<UnresolvedLookupExpr>(ovl)) {
UnresolvedLookupExpr *ULE = cast<UnresolvedLookupExpr>(ovl);
OpenPOWER on IntegriCloud