OSDN Git Service

* gcc.dg/nested-func-1.c: New test.
authorjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Nov 2003 12:04:04 +0000 (12:04 +0000)
committerjsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Nov 2003 12:04:04 +0000 (12:04 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73701 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/nested-func-1.c [new file with mode: 0644]

index d216a79..f200f42 100644 (file)
@@ -1,3 +1,7 @@
+2003-11-18  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * gcc.dg/nested-func-1.c: New test.
+
 2003-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * gcc.dg/cpp/assert4.c: New test.
diff --git a/gcc/testsuite/gcc.dg/nested-func-1.c b/gcc/testsuite/gcc.dg/nested-func-1.c
new file mode 100644 (file)
index 0000000..cb26e89
--- /dev/null
@@ -0,0 +1,35 @@
+/* Test for proper errors for break and continue in nested functions.  */
+/* Origin: Joseph Myers <jsm@polyomino.org.uk> */
+/* { dg-do compile } */
+/* { dg-options "" } */
+
+void
+foo (int a)
+{
+  switch (a) {
+    void bar1 (void) { break; } /* { dg-error "break statement" "break switch 1" } */
+  }
+  switch (a) {
+  case 0:
+    (void) 0;
+    void bar2 (void) { break; } /* { dg-error "break statement" "break switch 2" } */
+  }
+  while (1) {
+    void bar3 (void) { break; } /* { dg-error "break statement" "break while" } */
+  }
+  do {
+    void bar4 (void) { break; } /* { dg-error "break statement" "break do" } */
+  } while (1);
+  for (;;) {
+    void bar5 (void) { break; } /* { dg-error "break statement" "break for" } */
+  }
+  while (1) {
+    void bar6 (void) { continue; } /* { dg-error "continue statement" "continue while" } */
+  }
+  do {
+    void bar7 (void) { continue; } /* { dg-error "continue statement" "continue do" } */
+  } while (1);
+  for (;;) {
+    void bar8 (void) { continue; } /* { dg-error "continue statement" "continue for" } */
+  }
+}