diff options
| author | Douglas Gregor <dgregor@apple.com> | 2011-10-13 18:10:35 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2011-10-13 18:10:35 +0000 |
| commit | cda2270217228e128893927e0be5e6581d1615d3 (patch) | |
| tree | 4ae16d2079849f19777a705c54126a84417167d1 /clang/lib/Sema/SemaExpr.cpp | |
| parent | 1b282f9619f68a60d4b8f4dd0c68b0a07e1a1293 (diff) | |
| download | bcm5719-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.cpp | 4 |
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); |

