As threatened previously: consolidate name lookup and the creation of
DeclRefExprs and BlockDeclRefExprs into a single function
Sema::ActOnDeclarationNameExpr, eliminating a bunch of duplicate
lookup-name-and-check-the-result code.

Note that we still have the three parser entry points for identifiers,
operator-function-ids, and conversion-function-ids, since the parser
doesn't (and shouldn't) know about DeclarationNames. This is a Good
Thing (TM), and there will be more entrypoints coming (e.g., for C++
pseudo-destructor expressions).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59527 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.h b/lib/Sema/Sema.h
index 0309995..66c0138 100644
--- a/lib/Sema/Sema.h
+++ b/lib/Sema/Sema.h
@@ -625,6 +625,12 @@
                                                  TypeTy *Ty,
                                                  bool HasTrailingLParen,
                                                  const CXXScopeSpec *SS);
+  ExprResult ActOnDeclarationNameExpr(Scope *S, SourceLocation Loc,
+                                      DeclarationName Name,
+                                      bool HasTrailingLParen,
+                                      const CXXScopeSpec *SS);
+                                      
+
   virtual ExprResult ActOnPredefinedExpr(SourceLocation Loc,
                                          tok::TokenKind Kind);
   virtual ExprResult ActOnNumericConstant(const Token &);