1/* { dg-do compile } */
2/* { dg-options "-Wpointer-sign" } */
3
4void f1(long *); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" } */
5void f2(unsigned long *); /* { dg-message "note: expected '\[^\n'\]*' but argument is of type '\[^\n'\]*'" "note: expected" } */
6
7int main()
8{
9  long *lp;
10  unsigned long *ulp;
11  char *cp;
12  unsigned char *ucp;
13  signed char *scp;
14
15  ulp = lp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
16  lp = ulp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
17  f1(ulp);	/* { dg-warning " differ in signedness" } */
18  f2(lp);	/* { dg-warning " differ in signedness" } */
19
20  cp = ucp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
21  cp = scp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
22  ucp = scp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
23  ucp = cp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
24  scp = ucp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
25  scp = cp;	/* { dg-warning " pointer targets in assignment differ in signedness" } */
26}
27