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