Index: tests/ctrl-flow/.expect/break-misc.txt
===================================================================
--- tests/ctrl-flow/.expect/break-misc.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
+++ tests/ctrl-flow/.expect/break-misc.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -0,0 +1,4 @@
+if end
+block end
+
+unlabelled loop end
Index: tests/ctrl-flow/break-misc.cfa
===================================================================
--- tests/ctrl-flow/break-misc.cfa	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
+++ tests/ctrl-flow/break-misc.cfa	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -0,0 +1,41 @@
+// Test breaking to unusual (non-loop, non-switch) statements.
+
+#include <fstream.hfa>
+
+void breakTargetLabels() {
+	sout | "if";
+	Lif: if ( true ) {
+		break Lif;
+		sout | "!";
+	}
+	sout | "end" | nl;
+
+	sout | "block";
+	Lblock: {
+		break Lblock;
+		sout | "!";
+	}
+	sout | "end" | nl;
+}
+
+void breakSkipsUnlabelled() {
+	sout | "unlabelled";
+	for (int i = 0 ; i < 2 ; ++i) {
+		sout | "loop";
+		block: {
+			break;
+			sout | "!";
+			// Prevent unused label warning.
+			if ( false ) break block;
+		}
+	}
+	sout | "end" | nl;
+}
+
+int main() {
+	sout | nlOff;
+
+	breakTargetLabels();
+	sout | nl;
+	breakSkipsUnlabelled();
+}
Index: tests/enum_tests/.expect/input.txt
===================================================================
--- tests/enum_tests/.expect/input.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
+++ tests/enum_tests/.expect/input.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -0,0 +1,39 @@
+"BBB"
+"AB"
+"AAA"
+"AB"
+"BBB"
+"AAA"
+"AB"
+"AA"
+"B"
+"BBB"
+"AAA"
+"AA"
+"AB"
+"B"
+"BBB"
+"AAA"
+"AA"
+"AB"
+"B"
+"AAA"
+"B"
+"CB"
+"AC"
+"CB"
+"AC"
+"BBB"
+"AAA"
+"AA"
+missing data
+"AAA"
+"B"
+"CB"
+"AC"
+"CB"
+"AC"
+"BBB"
+"AAA"
+"AA"
+missing data
Index: tests/enum_tests/.in/input.txt
===================================================================
--- tests/enum_tests/.in/input.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
+++ tests/enum_tests/.in/input.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -0,0 +1,12 @@
+BBBABAAAAB
+BBBAAAABAAB
+BBB AAA AA AB B
+BBB
+AAA
+AA
+AB
+B
+AAABCBACCBAC
+BBBAAAAABB
+AAABCBACCBAC
+BBBAAAAABB
Index: tests/enum_tests/input.cfa
===================================================================
--- tests/enum_tests/input.cfa	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
+++ tests/enum_tests/input.cfa	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -0,0 +1,18 @@
+#include <fstream.hfa>
+#include <enum.hfa>
+
+int main() {
+	enum(int) E { BBB, AAA, AA, AB, B, CB, AC };
+	E e;
+
+	for () {
+		try {
+			sin | e;
+		} catch( missing_data * ) {
+			sout | "missing data";
+			continue;									// try again
+		} // try
+	  if ( eof( sin ) ) break;
+		sout | "\"" | e | "\"";
+	} // for
+}
Index: tests/exceptions/.expect/try-ctrl-flow.txt
===================================================================
--- tests/exceptions/.expect/try-ctrl-flow.txt	(revision cd1d721883249cecf37cb986c18ac63008f73fc8)
+++ tests/exceptions/.expect/try-ctrl-flow.txt	(revision d68a3f776b49ebef7031d8d117b0bb0eeed3a7ea)
@@ -1,10 +1,10 @@
-exceptions/try-ctrl-flow.cfa:7:1 error: "break" outside a loop, "switch", or labelled block
-exceptions/try-ctrl-flow.cfa:15:1 error: "break" outside a loop, "switch", or labelled block
-exceptions/try-ctrl-flow.cfa:23:1 error: "break" outside a loop, "switch", or labelled block
-exceptions/try-ctrl-flow.cfa:31:1 error: "continue" target must be an enclosing loop: 
+exceptions/try-ctrl-flow.cfa:7:1 error: "break" outside a loop or "switch"
+exceptions/try-ctrl-flow.cfa:15:1 error: "break" outside a loop or "switch"
+exceptions/try-ctrl-flow.cfa:23:1 error: "break" outside a loop or "switch"
+exceptions/try-ctrl-flow.cfa:31:1 error: "continue" outside a loop
 exceptions/try-ctrl-flow.cfa:48:1 error: "break" target must be an enclosing control structure: mainLoop
 exceptions/try-ctrl-flow.cfa:56:1 error: "continue" target must be an enclosing loop: mainLoop
-exceptions/try-ctrl-flow.cfa:65:1 error: "break" outside a loop, "switch", or labelled block
-exceptions/try-ctrl-flow.cfa:76:1 error: "break" outside a loop, "switch", or labelled block
+exceptions/try-ctrl-flow.cfa:65:1 error: "break" outside a loop or "switch"
+exceptions/try-ctrl-flow.cfa:76:1 error: "break" outside a loop or "switch"
 exceptions/try-ctrl-flow.cfa:87:1 error: "fallthrough" must be enclosed in a "switch" or "choose"
 exceptions/try-ctrl-flow.cfa:98:1 error: "break" target must be an enclosing control structure: mainBlock
@@ -13,5 +13,5 @@
 exceptions/try-ctrl-flow.cfa:133:1 error: "return" may not appear in a finally clause
 exceptions/try-ctrl-flow.cfa:139:1 error: "return" may not appear in a finally clause
-exceptions/try-ctrl-flow.cfa:148:1 error: "break" outside a loop, "switch", or labelled block
+exceptions/try-ctrl-flow.cfa:148:1 error: "break" outside a loop or "switch"
 exceptions/try-ctrl-flow.cfa:159:1 error: "return" may not appear in a try statement with a catch clause
 exceptions/try-ctrl-flow.cfa:187:1 error: "return" may not appear in a catchResume clause
