diff options
| -rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/testsuite/gcc.dg/cast-qual-1.c | 30 |
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e5434d2..10e520b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> + + * gcc.dg/cast-qual-1.c: Check casts through a pointer typedef. + 2000-04-03 Zack Weinberg <zack@wolery.cumb.org> * gcc.dg/cpp-redef-2.c, gcc.dg/cpp-tradwarn1.c, diff --git a/gcc/testsuite/gcc.dg/cast-qual-1.c b/gcc/testsuite/gcc.dg/cast-qual-1.c index 464fd45..5597ccd 100644 --- a/gcc/testsuite/gcc.dg/cast-qual-1.c +++ b/gcc/testsuite/gcc.dg/cast-qual-1.c @@ -28,3 +28,33 @@ bad_assign(const void *bar) { const char **foo = bar; /* { dg-warning "initialization discards" "discarding `const' warning" } */ } + +typedef struct rtx_def * rtx; + +void +typedef_cast(const void *bar) +{ + (const rtx)bar; /* { dg-bogus "cast discards" "discarding `const' warning" } */ + (const rtx *)bar; /* { dg-warning "cast discards" "discarding `const' warning" } */ +} + +void +typedef_cast2(const rtx bar) +{ + (const void *)bar; /* { dg-bogus "cast discards" "discarding `const' warning" } */ + (const void **)bar; /* { dg-warning "cast discards" "discarding `const' warning" } */ +} + +void +typedef_assign(const void *bar) +{ + rtx const *foo1 = bar; /* { dg-bogus "initialization discards" "discarding `const' warning" } */ + const rtx *foo2 = bar; /* { dg-warning "initialization discards" "discarding `const' warning" } */ +} + +void +typdef_assign2(const rtx bar) +{ + void *const *foo1 = bar; /* { dg-bogus "initialization discards" "discarding `const' warning" } */ + const void **foo2 = bar; /* { dg-warning "initialization discards" "discarding `const' warning" } */ +} |
