Define and use a helper method to call a type conversion
function.

llvm-svn: 83027
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 42f3511..1283ff4 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -4895,15 +4895,10 @@
     // on the object argument, then let ActOnCallExpr finish the job.
     
     // Create an implicit member expr to refer to the conversion operator.
-    MemberExpr *ME = 
-      new (Context) MemberExpr(Object, /*IsArrow=*/false, Conv, 
-                               SourceLocation(), Conv->getType());
-    QualType ResultType = Conv->getConversionType().getNonReferenceType();
+    // and then call it.
     CXXMemberCallExpr *CE =
-      new (Context) CXXMemberCallExpr(Context, ME, 0, 0, 
-                                      ResultType,
-                                      SourceLocation());
-    
+    BuildCXXMemberCallExpr(Object, Conv);
+      
     return ActOnCallExpr(S, ExprArg(*this, CE), LParenLoc,
                          MultiExprArg(*this, (ExprTy**)Args, NumArgs),
                          CommaLocs, RParenLoc).release();