aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gcc.dg/conv-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/conv-2.c')
-rw-r--r--gcc-4.9/gcc/testsuite/gcc.dg/conv-2.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/conv-2.c b/gcc-4.9/gcc/testsuite/gcc.dg/conv-2.c
new file mode 100644
index 000000000..388dee3d7
--- /dev/null
+++ b/gcc-4.9/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" } */
+}