From e5f13bf49ae0c4fd0ee897c0614ad8631afdb407 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Thu, 10 May 2012 21:06:05 +0000 Subject: [PATCH] re PR c++/53301 (Spurious -Wzero-as-null-pointer-constant with reference arguments) /cp 2012-05-10 Paolo Carlini PR c++/53301 * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning. /testsuite 2012-05-10 Paolo Carlini PR c++/53301 * g++.dg/warn/Wzero-as-null-pointer-constant-6.C: New. From-SVN: r187377 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/decl.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ .../g++.dg/warn/Wzero-as-null-pointer-constant-6.C | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index ebafba5d3ae..d749227a47d 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2012-05-10 Paolo Carlini + + PR c++/53301 + * decl.c (check_default_argument): Fix typo (POINTER_TYPE_P + instead of TYPE_PTR_P) in zero-as-null-pointer-constant warning. + 2012-05-06 Paolo Carlini PR c++/53152 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 108b51531d4..0e833b1b0e3 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -10619,7 +10619,7 @@ check_default_argument (tree decl, tree arg) if (warn_zero_as_null_pointer_constant && c_inhibit_evaluation_warnings == 0 - && (POINTER_TYPE_P (decl_type) || TYPE_PTR_TO_MEMBER_P (decl_type)) + && (TYPE_PTR_P (decl_type) || TYPE_PTR_TO_MEMBER_P (decl_type)) && null_ptr_cst_p (arg) && !NULLPTR_TYPE_P (TREE_TYPE (arg))) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7162e4e0ec8..09dac010f73 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-05-10 Paolo Carlini + + PR c++/53301 + * g++.dg/warn/Wzero-as-null-pointer-constant-6.C: New. + 2012-05-10 Eric Botcazou * gnat.dg/lto11.ad[sb]: New test. diff --git a/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C b/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C new file mode 100644 index 00000000000..4a76b5cf16f --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-6.C @@ -0,0 +1,6 @@ +// PR c++/53301 +// { dg-options "-Wzero-as-null-pointer-constant" } + +class x { public: x(int v) {} }; + +void foo(const x& = 0); -- 2.30.2