Commit 6f94398e by Paolo Carlini Committed by Paolo Carlini

re PR c++/45278 (-Wextra doesn't warn about (pointer < 0 ).)

/cp
2011-09-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45278
	* typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
	comparison of pointer with zero.

/testsuite
2011-09-28  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/45278
	* g++.dg/warn/Wextra-3.C: New.

From-SVN: r179321
parent 39f2bcb5
2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/45278
* typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
comparison of pointer with zero.
2011-09-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/31489
......
......@@ -4189,9 +4189,19 @@ cp_build_binary_op (location_t location,
result_type = composite_pointer_type (type0, type1, op0, op1,
CPO_COMPARISON, complain);
else if (code0 == POINTER_TYPE && null_ptr_cst_p (op1))
result_type = type0;
{
result_type = type0;
if (extra_warnings && (complain & tf_warning))
warning (OPT_Wextra,
"ordered comparison of pointer with integer zero");
}
else if (code1 == POINTER_TYPE && null_ptr_cst_p (op0))
result_type = type1;
{
result_type = type1;
if (extra_warnings && (complain & tf_warning))
warning (OPT_Wextra,
"ordered comparison of pointer with integer zero");
}
else if (null_ptr_cst_p (op0) && null_ptr_cst_p (op1))
/* One of the operands must be of nullptr_t type. */
result_type = TREE_TYPE (nullptr_node);
......
2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/45278
* g++.dg/warn/Wextra-3.C: New.
2011-09-28 Oleg Endo <oleg.endo@t-online.de>
PR target/49486
......
// PR c++/45278
// { dg-options "-Wextra" }
extern void* p;
int f1() { return ( p < 0 ? 1 : 0 ); } // { dg-warning "ordered comparison" }
int f2() { return ( p <= 0 ? 1 : 0 ); } // { dg-warning "ordered comparison" }
int f3() { return ( p > 0 ? 1 : 0 ); } // { dg-warning "ordered comparison" }
int f4() { return ( p >= 0 ? 1 : 0 ); } // { dg-warning "ordered comparison" }
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