// { dg-do assemble } // g++ 1.36.1 bug 900212_01 // g++ fails to flag as errors all attempts to add or subtract integer values // from pointers-to-member values. // Some cases are detected however. // Cfront 2.0 passes this test. // keywords: pointer arithmetic, member pointers struct struct0 { }; int struct0::*p0; int struct0::*p1; int (struct0::*fp0) (); int (struct0::*fp1) (); void global_function_0 () { p0 = p1 + 3; // { dg-error "" } p0 = p1 - 3; // { dg-error "" } p1++; /* { dg-error "" } caught by g++ */ ++p1; /* { dg-error "" } caught by g++ */ p1--; /* { dg-error "" } caught by g++ */ --p1; /* { dg-error "" } caught by g++ */ fp0 = fp1 + 3; // { dg-error "" } fp0 = fp1 - 3; // { dg-error "" } fp1++; /* { dg-error "" } */ ++fp1; /* { dg-error "" } */ fp1--; /* { dg-error "" } */ --fp1; /* { dg-error "" } */ } int main () { return 0; }