summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg
diff options
context:
space:
mode:
authorpzhao <pzhao@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-27 02:40:19 +0000
committerpzhao <pzhao@138bc75d-0d04-0410-961f-82ee72b054a4>2010-04-27 02:40:19 +0000
commitbf8949d14803940563e3973173f74e7d8f93499c (patch)
tree7230e18c8516cc8e381f0ff99c5b65d40e195eb8 /gcc/testsuite/gcc.dg
parente6d35c7195dfa2ec45f23c3bcae390debd04b9f2 (diff)
downloadgcc-bf8949d14803940563e3973173f74e7d8f93499c.tar.gz
gcc/
2010-04-27 Shujing Zhao <pearly.zhao@oracle.com> PR c/32207 * c-typeck.c (build_binary_op): Move forward check for comparison pointer with null pointer constant and adjust the diagnostic message. gcc/testsuite/ 2010-04-27 Shujing Zhao <pearly.zhao@oracle.com> PR c/32207 * gcc.dg/pr32207.c: New test. * gcc.dg/misc-column.c: Adjust expected warning. * gcc.dg/Walways-true-1.c: Likewise. * gcc.dg/Walways-true-2.c: Likewise. * gcc.dg/warn-addr-cmp.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158765 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r--gcc/testsuite/gcc.dg/Walways-true-1.c16
-rw-r--r--gcc/testsuite/gcc.dg/Walways-true-2.c8
-rw-r--r--gcc/testsuite/gcc.dg/misc-column.c2
-rw-r--r--gcc/testsuite/gcc.dg/pr32207.c9
-rw-r--r--gcc/testsuite/gcc.dg/warn-addr-cmp.c16
5 files changed, 30 insertions, 21 deletions
diff --git a/gcc/testsuite/gcc.dg/Walways-true-1.c b/gcc/testsuite/gcc.dg/Walways-true-1.c
index 32b921c3fa7..274ec32b38b 100644
--- a/gcc/testsuite/gcc.dg/Walways-true-1.c
+++ b/gcc/testsuite/gcc.dg/Walways-true-1.c
@@ -26,32 +26,32 @@ bar (int a)
foo (5);
if (&&lab) /* { dg-warning "7:always evaluate as" "correct warning" } */
foo (6);
- if (foo == 0) /* { dg-warning "11:never be NULL" "correct warning" } */
+ if (foo == 0) /* { dg-warning "11:the comparison will always evaluate to 'false'" "correct warning" } */
foo (7);
if (foo (1) == 0)
foo (8);
- if (&i == 0) /* { dg-warning "10:never be NULL" "correct warning" } */
+ if (&i == 0) /* { dg-warning "10:the comparison will always evaluate to 'false'" "correct warning" } */
foo (9);
if (i == 0)
foo (10);
- if (&a == 0) /* { dg-warning "10:never be NULL" "correct warning" } */
+ if (&a == 0) /* { dg-warning "10:the comparison will always evaluate to 'false'" "correct warning" } */
foo (11);
if (a == 0)
foo (12);
- if (&&lab == 0) /* { dg-warning "13:never be NULL" "correct warning" } */
+ if (&&lab == 0) /* { dg-warning "13:the comparison will always evaluate to 'false'" "correct warning" } */
foo (13);
- if (0 == foo) /* { dg-warning "9:never be NULL" "correct warning" } */
+ if (0 == foo) /* { dg-warning "9:the comparison will always evaluate to 'false'" "correct warning" } */
foo (14);
if (0 == foo (1))
foo (15);
- if (0 == &i) /* { dg-warning "9:never be NULL" "correct warning" } */
+ if (0 == &i) /* { dg-warning "9:the comparison will always evaluate to 'false'" "correct warning" } */
foo (16);
if (0 == i)
foo (17);
- if (0 == &a) /* { dg-warning "9:never be NULL" "correct warning" } */
+ if (0 == &a) /* { dg-warning "9:the comparison will always evaluate to 'false'" "correct warning" } */
foo (18);
if (0 == a)
foo (19);
- if (0 == &&lab) /* { dg-warning "9:never be NULL" "correct warning" } */
+ if (0 == &&lab) /* { dg-warning "9:the comparison will always evaluate to 'false'" "correct warning" } */
foo (20);
}
diff --git a/gcc/testsuite/gcc.dg/Walways-true-2.c b/gcc/testsuite/gcc.dg/Walways-true-2.c
index c14857eaee6..3978a446188 100644
--- a/gcc/testsuite/gcc.dg/Walways-true-2.c
+++ b/gcc/testsuite/gcc.dg/Walways-true-2.c
@@ -37,11 +37,11 @@ bar (int a)
foo (9);
if (i == 0)
foo (10);
- if (&a == 0) /* { dg-warning "never be NULL" "correct warning" } */
+ if (&a == 0) /* { dg-warning "the comparison will always evaluate to 'false'" "correct warning" } */
foo (11);
if (a == 0)
foo (12);
- if (&&lab == 0) /* { dg-warning "never be NULL" "correct warning" } */
+ if (&&lab == 0) /* { dg-warning "the comparison will always evaluate to 'false'" "correct warning" } */
foo (13);
if (0 == foo)
foo (14);
@@ -51,10 +51,10 @@ bar (int a)
foo (16);
if (0 == i)
foo (17);
- if (0 == &a) /* { dg-warning "never be NULL" "correct warning" } */
+ if (0 == &a) /* { dg-warning "the comparison will always evaluate to 'false'" "correct warning" } */
foo (18);
if (0 == a)
foo (19);
- if (0 == &&lab) /* { dg-warning "never be NULL" "correct warning" } */
+ if (0 == &&lab) /* { dg-warning "the comparison will always evaluate to 'false'" "correct warning" } */
foo (20);
}
diff --git a/gcc/testsuite/gcc.dg/misc-column.c b/gcc/testsuite/gcc.dg/misc-column.c
index a24427e4baa..f69f98884d9 100644
--- a/gcc/testsuite/gcc.dg/misc-column.c
+++ b/gcc/testsuite/gcc.dg/misc-column.c
@@ -19,7 +19,7 @@ void foo (void)
if (p < q) /* { dg-warning "9:comparison of distinct pointer types" } */
bar ();
- if (&p == 0) /* { dg-warning "10:will never be NULL" } */
+ if (&p == 0) /* { dg-warning "10:comparison will always evaluate to 'false'" } */
bar();
if (p == 4) /* { dg-warning "9:comparison between pointer and integer" } */
diff --git a/gcc/testsuite/gcc.dg/pr32207.c b/gcc/testsuite/gcc.dg/pr32207.c
new file mode 100644
index 00000000000..549d51a9e9d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr32207.c
@@ -0,0 +1,9 @@
+/* Test warning for comparison non-null address with null pointer constant. */
+/* Origin: Pawel Sikora <pluto@agmk.net> */
+/* { dg-do compile } */
+/* { dg-options "-Waddress" } */
+extern void z();
+
+void f() { if ( z ) z(); } /* { dg-warning "always evaluate as" } */
+void g() { if ( z != 0 ) z(); } /* { dg-warning "the comparison will always evaluate to 'true'" } */
+void h() { if ( z != (void*)0 ) z(); } /* { dg-warning "the comparison will always evaluate to 'true'" } */
diff --git a/gcc/testsuite/gcc.dg/warn-addr-cmp.c b/gcc/testsuite/gcc.dg/warn-addr-cmp.c
index 6ad94731aff..c1e68f5c598 100644
--- a/gcc/testsuite/gcc.dg/warn-addr-cmp.c
+++ b/gcc/testsuite/gcc.dg/warn-addr-cmp.c
@@ -36,13 +36,13 @@ test_func_cmp (void)
int
test_func_cmp_rhs_zero (void)
{
- if (func == 0) /* { dg-warning "the address of 'func'" } */
+ if (func == 0) /* { dg-warning "the comparison will always evaluate to 'false'" } */
return 1;
- if (func != 0) /* { dg-warning "the address of 'func'" } */
+ if (func != 0) /* { dg-warning "the comparison will always evaluate to 'true'" } */
return 1;
- if (&var == 0) /* { dg-warning "the address of 'var'" } */
+ if (&var == 0) /* { dg-warning "the comparison will always evaluate to 'false'" } */
return 1;
- if (&var != 0) /* { dg-warning "the address of 'var'" } */
+ if (&var != 0) /* { dg-warning "the comparison will always evaluate to 'true'" } */
return 1;
if (weak_func == 0)
return 1;
@@ -59,13 +59,13 @@ test_func_cmp_rhs_zero (void)
int
test_func_cmp_lhs_zero (void)
{
- if (0 == func) /* { dg-warning "the address of 'func'" } */
+ if (0 == func) /* { dg-warning "the comparison will always evaluate to 'false'" } */
return 1;
- if (0 != func) /* { dg-warning "the address of 'func'" } */
+ if (0 != func) /* { dg-warning "the comparison will always evaluate to 'true'" } */
return 1;
- if (0 == &var) /* { dg-warning "the address of 'var'" } */
+ if (0 == &var) /* { dg-warning "the comparison will always evaluate to 'false'" } */
return 1;
- if (0 != &var) /* { dg-warning "the address of 'var'" } */
+ if (0 != &var) /* { dg-warning "the comparison will always evaluate to 'true'" } */
return 1;
if (0 == weak_func)
return 1;