From cd695e500de7e628b1feb3425423dec85eb4d5ba Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Mon, 10 Nov 2008 20:40:00 +0000 Subject: Basic support for taking the address of an overloaded function llvm-svn: 59000 --- clang/lib/Sema/SemaExprCXX.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'clang/lib/Sema/SemaExprCXX.cpp') 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; -- cgit v1.2.3