diff options
author | Douglas Gregor <dgregor@apple.com> | 2008-11-10 20:40:00 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2008-11-10 20:40:00 +0000 |
commit | cd695e500de7e628b1feb3425423dec85eb4d5ba (patch) | |
tree | 15fd5d04bd245b48af239bc199c129001dcd65b6 /clang/lib/Sema/SemaExprCXX.cpp | |
parent | 74eefb5722372f49280e452fa680fb3da8aa1ab0 (diff) | |
download | bcm5719-llvm-cd695e500de7e628b1feb3425423dec85eb4d5ba.tar.gz bcm5719-llvm-cd695e500de7e628b1feb3425423dec85eb4d5ba.zip |
Basic support for taking the address of an overloaded function
llvm-svn: 59000
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 41ee8ddcae4..a6a62a9e377 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -280,7 +280,16 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, break; case ICK_Array_To_Pointer: - FromType = Context.getArrayDecayedType(FromType); + if (FromType->isOverloadType()) { + FunctionDecl *Fn = ResolveAddressOfOverloadedFunction(From, ToType, true); + if (!Fn) + return true; + + FixOverloadedFunctionReference(From, Fn); + FromType = From->getType(); + } else { + FromType = Context.getArrayDecayedType(FromType); + } ImpCastExprToType(From, FromType); break; |