typeck.c (build_binary_op): Use pedwarn instead of error for consistency.

2007-11-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
cp/
	* typeck.c (build_binary_op): Use pedwarn instead of error for
	consistency.
testsuite/
	* g++dg/warn/pointer-integer-comparison.C: New.

From-SVN: r129898
parent 0976ffb6
2007-11-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* typeck.c (build_binary_op): Use pedwarn instead of error for
consistency.
2007-11-05 Jakub Jelinek <jakub@redhat.com> 2007-11-05 Jakub Jelinek <jakub@redhat.com>
PR c++/33836 PR c++/33836
......
...@@ -3357,12 +3357,12 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1, ...@@ -3357,12 +3357,12 @@ build_binary_op (enum tree_code code, tree orig_op0, tree orig_op1,
else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE) else if (code0 == POINTER_TYPE && code1 == INTEGER_TYPE)
{ {
result_type = type0; result_type = type0;
error ("ISO C++ forbids comparison between pointer and integer"); pedwarn ("ISO C++ forbids comparison between pointer and integer");
} }
else if (code0 == INTEGER_TYPE && code1 == POINTER_TYPE) else if (code0 == INTEGER_TYPE && code1 == POINTER_TYPE)
{ {
result_type = type1; result_type = type1;
error ("ISO C++ forbids comparison between pointer and integer"); pedwarn ("ISO C++ forbids comparison between pointer and integer");
} }
else if (TYPE_PTRMEMFUNC_P (type0) && null_ptr_cst_p (op1)) else if (TYPE_PTRMEMFUNC_P (type0) && null_ptr_cst_p (op1))
{ {
......
2007-11-05 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* g++dg/warn/pointer-integer-comparison.C: New.
2007-11-05 Jakub Jelinek <jakub@redhat.com> 2007-11-05 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/33856 PR tree-optimization/33856
// { dg-do compile }
// { dg-options "-fsyntax-only -fpermissive" }
int foo (int i, void *p)
{
if (i == p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 0;
else if (i != p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 1;
}
int bar (int i, void *p)
{
if (i < p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 0;
else if (i >= p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 1;
}
int baz (int i, void *p)
{
if (i <= p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 0;
else if (i > p) // { dg-warning "warning: ISO C.. forbids comparison between pointer and integer" }
return 1;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment