diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/conv-2.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/conv-2.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/conv-2.c b/gcc/testsuite/gcc.dg/conv-2.c new file mode 100644 index 000000000..388dee3d7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/conv-2.c @@ -0,0 +1,26 @@ +/* { dg-do compile } */ +/* { dg-options "-Wpointer-sign" } */ + +void f1(long *); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" } */ +void f2(unsigned long *); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" } */ + +int main() +{ + long *lp; + unsigned long *ulp; + char *cp; + unsigned char *ucp; + signed char *scp; + + ulp = lp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + lp = ulp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + f1(ulp); /* { dg-warning " differ in signedness" } */ + f2(lp); /* { dg-warning " differ in signedness" } */ + + cp = ucp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + cp = scp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + ucp = scp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + ucp = cp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + scp = ucp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ + scp = cp; /* { dg-warning " pointer targets in assignment differ in signedness" } */ +} |