From 542d7fbdda5ce3ad36e42e05070088e70f9d29b4 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Tue, 20 Apr 2010 13:51:24 +0000 Subject: [PATCH] backport: [multiple changes] 2010-04-20 Richard Guenther Backport from mainline 2008-12-08 Jakub Jelinek PR c/35443 * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR. * gcc.dg/pr35443.c: New test. 2009-01-09 Jakub Jelinek PR c/35742 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR. * gcc.dg/pr35742.c: New test. From-SVN: r158557 --- gcc/ChangeLog | 13 +++++++++++++ gcc/c-pretty-print.c | 7 +++++++ gcc/testsuite/ChangeLog | 12 ++++++++++++ gcc/testsuite/gcc.dg/pr35443.c | 9 +++++++++ gcc/testsuite/gcc.dg/pr35742.c | 13 +++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/pr35443.c create mode 100644 gcc/testsuite/gcc.dg/pr35742.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 794475166e07..d99458a3fc5a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2010-04-20 Richard Guenther + + Backport from mainline + 2008-12-08 Jakub Jelinek + PR c/35443 + * c-pretty-print.c (pp_c_expression): Handle BIND_EXPR. + + 2009-01-09 Jakub Jelinek + + PR c/35742 + * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like + BIND_EXPR. + 2010-04-20 Richard Guenther PR rtl-optimization/43438 diff --git a/gcc/c-pretty-print.c b/gcc/c-pretty-print.c index 39044a3cebd9..d76bd7cebf21 100644 --- a/gcc/c-pretty-print.c +++ b/gcc/c-pretty-print.c @@ -2031,6 +2031,13 @@ pp_c_expression (c_pretty_printer *pp, tree e) pp_postfix_expression (pp, TREE_OPERAND (e, 1)); break; + case BIND_EXPR: + case GOTO_EXPR: + /* We don't yet have a way of dumping statements in a + human-readable format. */ + pp_string (pp, "({...})"); + break; + default: pp_unsupported_tree (pp, e); break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 45553b688a1a..c9842fb3aea7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2010-04-20 Richard Guenther + + Backport from mainline + 2008-12-08 Jakub Jelinek + PR c/35443 + * gcc.dg/pr35443.c: New test. + + 2009-01-09 Jakub Jelinek + + PR c/35742 + * gcc.dg/pr35742.c: New test. + 2010-04-20 Richard Guenther PR rtl-optimization/43438 diff --git a/gcc/testsuite/gcc.dg/pr35443.c b/gcc/testsuite/gcc.dg/pr35443.c new file mode 100644 index 000000000000..5dfc299e7967 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35443.c @@ -0,0 +1,9 @@ +/* PR c/35443 */ +/* { dg-options "" } */ +/* { dg-bogus "not supported by" "" { target *-*-* } 0 } */ + +void +foo () +{ + ({ int i; i; })(); /* { dg-error "is not a function" } */ +} diff --git a/gcc/testsuite/gcc.dg/pr35742.c b/gcc/testsuite/gcc.dg/pr35742.c new file mode 100644 index 000000000000..609472792097 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr35742.c @@ -0,0 +1,13 @@ +/* PR c/35742 */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99" } */ +/* { dg-bogus "not supported by" "" { target *-*-* } 0 } */ + +void +foo () +{ + for (;;) + ({break;})(); /* { dg-error "is not a function" } */ + for (;;) + ({continue;})(); /* { dg-error "is not a function" } */ +} -- 2.47.2