// { dg-do assemble } | |
// { dg-options "-Wpointer-arith" } | |
double X(const double x) { return x; } | |
double Y() { return 1.0; } | |
double Z() { return 2.0; } | |
struct A { | |
void bar() { } | |
void foo() { } | |
}; | |
typedef void (A::*pmf)(); | |
static int mememe = &A::foo - &A::bar; // { dg-error "invalid operands" } | |
pmf b = &A::foo-1; // { dg-error "invalid operands" } | |
int main() { | |
double y; | |
y=X(Y-Z); // { dg-error "pointer to a function" } | |
} |