1 // { dg-do assemble  }
2 // { dg-options "-Wpointer-arith" }
3 
X(const double x)4 double X(const double x) { return x; }
Y()5 double Y() { return 1.0; }
Z()6 double Z() { return 2.0; }
7 
8 struct A {
barA9   void bar() { }
fooA10   void foo() { }
11 };
12 
13 typedef void (A::*pmf)();
14 
15 static int mememe = &A::foo - &A::bar;	// { dg-error "invalid operands" }
16 pmf b = &A::foo-1;	// { dg-error "invalid operands" }
17 
main()18 int main() {
19     double y;
20     y=X(Y-Z);   // { dg-error "pointer to a function" }
21 }
22