From aee5c3ed8c2421a8a65c2728afcfdf58ded4330b Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 9 Jan 2009 17:51:55 +0100 Subject: [PATCH] re PR c++/35335 (Broken diagnostic: 'expr_stmt' not supported by dump_expr) PR c++/35335 * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR. * g++.dg/other/error31.C: New testcase. From-SVN: r143210 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/error.c | 3 ++- gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/g++.dg/other/error31.C | 13 +++++++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/other/error31.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 6d09fafb1984..aad07d2ce673 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2009-01-09 Jakub Jelinek + + PR c++/35335 + * error.c (dump_expr): Handle EXPR_STMT like BIND_EXPR. + 2009-01-09 John F. Carr PR c++/37877 diff --git a/gcc/cp/error.c b/gcc/cp/error.c index 4a63f1df8137..16c962809d7f 100644 --- a/gcc/cp/error.c +++ b/gcc/cp/error.c @@ -1,7 +1,7 @@ /* Call-backs for C++ error reporting. This code is non-reentrant. Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, - 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify @@ -1977,6 +1977,7 @@ dump_expr (tree t, int flags) case BIND_EXPR: case STMT_EXPR: + case EXPR_STMT: case STATEMENT_LIST: /* We don't yet have a way of dumping statements in a human-readable format. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b59761662259..f142e96b8793 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2009-01-09 Jakub Jelinek + PR c++/35335 + * g++.dg/other/error31.C: New testcase. + PR c/35742 * gcc.dg/pr35742.c: New test. diff --git a/gcc/testsuite/g++.dg/other/error31.C b/gcc/testsuite/g++.dg/other/error31.C new file mode 100644 index 000000000000..c9e8351bcf37 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/error31.C @@ -0,0 +1,13 @@ +// PR c++/35335 +// { dg-do compile } +// { dg-options "" } +// { dg-bogus "not supported by" "" { target *-*-* } 0 } + +struct A {}; // { dg-message "note: candidates are" } + +void +foo () +{ + A a; + a = ({ { 1; } }); // { dg-error "no match for" } +} -- 2.47.3