llvm-project/clang/test/SemaCXX/cxx-member-pointer-op.cpp
Daniel Dunbar 8fbe78f6fc Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
- This is designed to make it obvious that %clang_cc1 is a "test variable"
   which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
   can be useful to redefine what gets run as 'clang -cc1' (for example, to set
   a default target).

llvm-svn: 91446
2009-12-15 20:14:24 +00:00

22 lines
533 B
C++

// RUN: %clang_cc1 -fsyntax-only -pedantic -verify %s
struct C {
static int (C::* a);
};
typedef void (C::*pmfc)();
void g(pmfc) {
C *c;
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) {
return x->*C::a;
}