From be9d8f632380e6f42849a3acc4f1819e3bbec69b Mon Sep 17 00:00:00 2001 From: sayle Date: Sun, 12 Jun 2005 23:46:46 +0000 Subject: [PATCH] PR c++/21930 * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types. Treat CONVERT_EXPR identically to NOP_EXPR. * g++.dg/other/error10.C: New test case. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100865 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/error.c | 11 ++--------- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/other/error10.C | 15 +++++++++++++++ 4 files changed, 28 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/g++.dg/other/error10.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 82b0ee281fd..fa37b36f4ee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2005-06-12 Roger Sayle + + PR c++/21930 + * error.c (dump_expr): UNARY_PLUS_EXPR need not handle void types. + Treat CONVERT_EXPR identically to NOP_EXPR. + 2005-06-10 Aldy Hernandez PR c++/10611 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 71b7173945e..c897b64f919 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1512,15 +1512,7 @@ dump_expr (tree t, int flags) break; case UNARY_PLUS_EXPR: - if (TREE_TYPE (t) && VOID_TYPE_P (TREE_TYPE (t))) - { - pp_cxx_left_paren (cxx_pp); - dump_type (TREE_TYPE (t), flags); - pp_cxx_right_paren (cxx_pp); - dump_expr (TREE_OPERAND (t, 0), flags); - } - else - dump_unary_op ("+", t, flags); + dump_unary_op ("+", t, flags); break; case ADDR_EXPR: @@ -1600,6 +1592,7 @@ dump_expr (tree t, int flags) break; case NOP_EXPR: + case CONVERT_EXPR: { tree op = TREE_OPERAND (t, 0); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 7278d612927..9ae809b5d0e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-06-12 Roger Sayle + + PR c++/21930 + * g++.dg/other/error10.C: New test case. + 2005-06-12 Francois-Xavier Coudert PR libfortran/19155 diff --git a/gcc/testsuite/g++.dg/other/error10.C b/gcc/testsuite/g++.dg/other/error10.C new file mode 100644 index 00000000000..d8025801f13 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/error10.C @@ -0,0 +1,15 @@ +// PR c++/21930 +// Test case by Volker Reichelt +// { dg-do compile } + +template struct A {}; + +template +void foo(const A &a) +{ -A(a); } // { dg-error "\\(\\(const A<0>\\*\\)a\\)" "" } + +void bar() +{ + foo(A<0>()); // { dg-error "instantiated from here" "" } +} + -- 2.11.0