PR c/35742
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jan 2009 16:46:47 +0000 (16:46 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Jan 2009 16:46:47 +0000 (16:46 +0000)
* c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like
BIND_EXPR.

* gcc.dg/pr35742.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143209 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-pretty-print.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/pr35742.c [new file with mode: 0644]

index 5404248..dd81dbc 100644 (file)
@@ -1,3 +1,9 @@
+2009-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35742
+       * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like
+       BIND_EXPR.
+
 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * pa.c (last_address): Change to unsigned.
index 8676205..ebfb885 100644 (file)
@@ -1,5 +1,5 @@
 /* Subroutines common to both C and C++ pretty-printers.
-   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
    Free Software Foundation, Inc.
    Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net>
 
@@ -2104,6 +2104,7 @@ pp_c_expression (c_pretty_printer *pp, tree e)
       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, "({...})");
index a86c18c..b597616 100644 (file)
@@ -1,3 +1,8 @@
+2009-01-09  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/35742
+       * gcc.dg/pr35742.c: New test.
+
 2009-01-09  John F. Carr  <jfc@mit.edu>
 
        PR c++/37877
diff --git a/gcc/testsuite/gcc.dg/pr35742.c b/gcc/testsuite/gcc.dg/pr35742.c
new file mode 100644 (file)
index 0000000..6094727
--- /dev/null
@@ -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" } */
+}