| // 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; // ERROR - |
| p0 = p1 - 3; // ERROR - |
| p1++; /* ERROR - caught by g++ */ |
| ++p1; /* ERROR - caught by g++ */ |
| p1--; /* ERROR - caught by g++ */ |
| --p1; /* ERROR - caught by g++ */ |
| |
| fp0 = fp1 + 3; // ERROR - |
| fp0 = fp1 - 3; // ERROR - |
| fp1++; /* ERROR - */ |
| ++fp1; /* ERROR - */ |
| fp1--; /* ERROR - */ |
| --fp1; /* ERROR - */ |
| } |
| |
| int main () { return 0; } |