Implicit support for direct initialization of objects of class type, e.g.,

  X x(5, 7);




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58641 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 1b08a45..dd7fe01 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -418,7 +418,7 @@
                             Expr **Args, unsigned NumArgs,
                             OverloadCandidateSet& CandidateSet,
                             bool SuppressUserConversions = false);
-  void AddOverloadCandidates(OverloadedFunctionDecl *Ovl, 
+  void AddOverloadCandidates(const OverloadedFunctionDecl *Ovl, 
                              Expr **Args, unsigned NumArgs,
                              OverloadCandidateSet& CandidateSet,
                              bool SuppressUserConversions = false);
@@ -710,6 +710,12 @@
                                              SourceLocation *CommaLocs,
                                              SourceLocation RParenLoc);
 
+  CXXConstructorDecl *
+  PerformDirectInitForClassType(QualType ClassType,
+                                Expr **Args, unsigned NumArgs,
+                                SourceLocation Loc, SourceRange Range,
+                                std::string InitEntity, bool HasInitializer);
+
   /// ActOnCXXNamedCast - Parse {dynamic,static,reinterpret,const}_cast's.
   virtual ExprResult ActOnCXXNamedCast(SourceLocation OpLoc, tok::TokenKind Kind,
                                        SourceLocation LAngleBracketLoc, TypeTy *Ty,