diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/pr37561.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr37561.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr37561.c b/gcc/testsuite/gcc.dg/pr37561.c new file mode 100644 index 000000000..ec712a784 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr37561.c @@ -0,0 +1,23 @@ +/* PR c++/37561 */ +/* { dg-do compile } */ + +__extension__ __PTRDIFF_TYPE__ p; +char q; + +void +foo () +{ + ((char *) p)++; /* { dg-error "lvalue" } */ + ((char *) q)++; /* { dg-error "lvalue" } */ + ((char *) p)--; /* { dg-error "lvalue" } */ + ((char *) q)--; /* { dg-error "lvalue" } */ + ++(char *) p; /* { dg-error "lvalue" } */ + ++(char *) q; /* { dg-error "lvalue" } */ + --(char *) p; /* { dg-error "lvalue" } */ + --(char *) q; /* { dg-error "lvalue" } */ +} + +/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 11 } */ +/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 13 } */ +/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 15 } */ +/* { dg-warning "cast to pointer from integer of different size" "" { target *-*-* } 17 } */ |