re PR c++/51290 (Bogus warning: zero as null pointer constant with static_cast)

/cp
2011-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51290
	* class.c (build_base_path): For the null pointer check use
	nullptr_node instead of integer_zero_node.

/testsuite
2011-11-24  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/51290
	* g++.dg/warn/Wzero-as-null-pointer-constant-3.C: New.

From-SVN: r181690
This commit is contained in:
Paolo Carlini 2011-11-24 10:20:43 +00:00 committed by Paolo Carlini
parent 282d42f2cb
commit 36b0e7519f
4 changed files with 34 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2011-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51290
* class.c (build_base_path): For the null pointer check use
nullptr_node instead of integer_zero_node.
2011-11-22 Dodji Seketeli <dodji@redhat.com>
PR c++/51145

View File

@ -338,7 +338,7 @@ build_base_path (enum tree_code code,
/* Now that we've saved expr, build the real null test. */
if (null_test)
{
tree zero = cp_convert (TREE_TYPE (expr), integer_zero_node);
tree zero = cp_convert (TREE_TYPE (expr), nullptr_node);
null_test = fold_build2_loc (input_location, NE_EXPR, boolean_type_node,
expr, zero);
}

View File

@ -1,3 +1,8 @@
2011-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51290
* g++.dg/warn/Wzero-as-null-pointer-constant-3.C: New.
2011-11-23 Jakub Jelinek <jakub@redhat.com>
PR target/51261

View File

@ -0,0 +1,22 @@
// PR c++/51290
// { dg-options "-Wzero-as-null-pointer-constant" }
class A { int a; };
class B { int b; };
class C : public A, public B
{
private:
static void foo (A *x)
{
C *y = static_cast<C *>(x);
(void) y;
}
static void bar (B *x)
{
C *y = static_cast<C *>(x);
(void) y;
}
};