Index: tests/ctrl-flow/.expect/break-misc.txt
===================================================================
--- tests/ctrl-flow/.expect/break-misc.txt	(revision f107afe1777786d6ae56d564e53c1fb85659a9d0)
+++ tests/ctrl-flow/.expect/break-misc.txt	(revision f107afe1777786d6ae56d564e53c1fb85659a9d0)
@@ -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 f107afe1777786d6ae56d564e53c1fb85659a9d0)
+++ tests/ctrl-flow/break-misc.cfa	(revision f107afe1777786d6ae56d564e53c1fb85659a9d0)
@@ -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/exceptions/.expect/try-ctrl-flow.txt
===================================================================
--- tests/exceptions/.expect/try-ctrl-flow.txt	(revision 1842167664efe790163534613add7510849a3c01)
+++ tests/exceptions/.expect/try-ctrl-flow.txt	(revision f107afe1777786d6ae56d564e53c1fb85659a9d0)
@@ -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
