diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2009-11-18 22:16:17 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-11-18 22:16:17 +0000 |
| commit | fff3fb2b355c77ae30c16fb57fe7bf8d18b863f9 (patch) | |
| tree | 23df0bd319a5dacdd7ad691f3c521edded0f7752 | |
| parent | 5d87f7d5f8471972063934f5cbe8c594e0ac30d3 (diff) | |
| download | bcm5719-llvm-fff3fb2b355c77ae30c16fb57fe7bf8d18b863f9.tar.gz bcm5719-llvm-fff3fb2b355c77ae30c16fb57fe7bf8d18b863f9.zip | |
ignore parens surounding the type when diagnosing
pointer-to-member cast types used in expressions.
llvm-svn: 89255
| -rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 2 | ||||
| -rw-r--r-- | clang/test/SemaCXX/cxx-member-pointer-op.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index cf2c696c2b9..462bf13540e 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -1445,7 +1445,7 @@ QualType Sema::CheckPointerToMemberOperands( } } - if (isa<CXXZeroInitValueExpr>(rex)) { + if (isa<CXXZeroInitValueExpr>(rex->IgnoreParens())) { // Diagnose use of pointer-to-member type which when used as // the functional cast in a pointer-to-member expression. Diag(Loc, diag::err_pointer_to_member_type) << isIndirect; diff --git a/clang/test/SemaCXX/cxx-member-pointer-op.cpp b/clang/test/SemaCXX/cxx-member-pointer-op.cpp index 88fe6ac166e..63b29c723e0 100644 --- a/clang/test/SemaCXX/cxx-member-pointer-op.cpp +++ b/clang/test/SemaCXX/cxx-member-pointer-op.cpp @@ -11,6 +11,8 @@ void g(pmfc) { c->*pmfc(); // expected-error {{invalid use of pointer to member type after ->*}} C c1; c1.*pmfc(); // expected-error {{invalid use of pointer to member type after .*}} + c->*(pmfc()); // expected-error {{invalid use of pointer to member type after ->*}} + c1.*((pmfc())); // expected-error {{invalid use of pointer to member type after .*}} } int a(C* x) { |

