[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