"Incremental" progress on using expressions, by which I mean totally ripping
into pretty much everything about overload resolution in order to wean
BuildDeclarationNameExpr off LookupResult::getAsSingleDecl().  Replace  
UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the
idea of a non-member lookup that we haven't totally resolved yet, whether by
overloading, argument-dependent lookup, or (eventually) the presence of   
a function template in the lookup results.  

Incidentally fixes a problem with argument-dependent lookup where we were 
still performing ADL even when the lookup results contained something from
a block scope.  

Incidentally improves a diagnostic when using an ObjC ivar from a class method.
This just fell out from rewriting BuildDeclarationNameExpr's interaction with
lookup, and I'm too apathetic to break it out.

The only remaining uses of OverloadedFunctionDecl that I know of are in
TemplateName and MemberExpr.

llvm-svn: 89544
diff --git a/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp b/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp
index 4b15828..0cb8186 100644
--- a/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp
+++ b/clang/test/CXX/dcl.decl/dcl.meaning/dcl.fct.default/p4.cpp
@@ -41,8 +41,8 @@
   
   void m()
   {
-    void f(int, int); // expected-note{{candidate}}
-    f(4);  // expected-error{{no matching}}
+    void f(int, int);
+    f(4);  // expected-error{{too few arguments to function call}}
     void f(int, int = 5); // expected-note{{previous definition}}
     f(4); // okay
     void f(int, int = 5); // expected-error{{redefinition of default argument}}
diff --git a/clang/test/SemaObjC/ivar-ref-misuse.m b/clang/test/SemaObjC/ivar-ref-misuse.m
index 85ede57..707e189 100644
--- a/clang/test/SemaObjC/ivar-ref-misuse.m
+++ b/clang/test/SemaObjC/ivar-ref-misuse.m
@@ -15,7 +15,7 @@
 
 @implementation Sprite
 + (void)setFoo:(int)foo {
-  sprite = foo;   // expected-error {{use of undeclared identifier 'sprite'}}
+  sprite = foo;   // expected-error {{instance variable 'sprite' accessed in class method}}
   spree = foo;
   Xsprite = foo; // expected-error {{use of undeclared identifier 'Xsprite'}} 
   UseGlobalBar = 10;