[cfe-commits] r111899 - in /cfe/trunk: lib/Sema/SemaExpr.cpp test/SemaCXX/addr-of-overloaded-function.cpp

Eli Friedman eli.friedman at gmail.com
Mon Aug 23 22:23:20 PDT 2010


Author: efriedma
Date: Tue Aug 24 00:23:20 2010
New Revision: 111899

URL: http://llvm.org/viewvc/llvm-project?rev=111899&view=rev
Log:
PR7971: Compute the correct type for an address-of expression containing an
UnresolvedMemberExpr.


Modified:
    cfe/trunk/lib/Sema/SemaExpr.cpp
    cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp

Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=111899&r1=111898&r2=111899&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
+++ cfe/trunk/lib/Sema/SemaExpr.cpp Tue Aug 24 00:23:20 2010
@@ -6271,7 +6271,7 @@
     // FIXME: Can LHS ever be null here?
     if (!CheckAddressOfOperand(CO->getTrueExpr(), OpLoc).isNull())
       return CheckAddressOfOperand(CO->getFalseExpr(), OpLoc);
-  } else if (isa<UnresolvedLookupExpr>(op)) {
+  } else if (isa<OverloadExpr>(op)) {
     return Context.OverloadTy;
   } else if (dcl) { // C99 6.5.3.2p1
     // We have an lvalue with a decl. Make sure the decl is not declared

Modified: cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp?rev=111899&r1=111898&r2=111899&view=diff
==============================================================================
--- cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp (original)
+++ cfe/trunk/test/SemaCXX/addr-of-overloaded-function.cpp Tue Aug 24 00:23:20 2010
@@ -86,3 +86,13 @@
     myFunction(bar);
   }
 }
+
+namespace PR7971 {
+  struct S {
+    void g() {
+      f(&g);
+    }
+    void f(bool (*)(int, char));
+    static bool g(int, char);
+  };
+}





More information about the cfe-commits mailing list