Index: tests/.expect/except-finally-error.txt
===================================================================
--- tests/.expect/except-finally-error.txt	(revision d62806c676c75569ea896d4e3fb1ce9f9c780bd5)
+++ tests/.expect/except-finally-error.txt	(revision d62806c676c75569ea896d4e3fb1ce9f9c780bd5)
@@ -0,0 +1,4 @@
+except-finally-error.cfa:7:1 error: 'break' outside a loop, 'switch', or labelled block
+except-finally-error.cfa:15:1 error: 'continue' target must be an enclosing loop: 
+except-finally-error.cfa:32:1 error: 'break' target must be an enclosing control structure: mainLoop
+except-finally-error.cfa:40:1 error: 'continue' target must be an enclosing loop: mainLoop
Index: tests/except-finally-error.cfa
===================================================================
--- tests/except-finally-error.cfa	(revision d62806c676c75569ea896d4e3fb1ce9f9c780bd5)
+++ tests/except-finally-error.cfa	(revision d62806c676c75569ea896d4e3fb1ce9f9c780bd5)
@@ -0,0 +1,61 @@
+// All of these should be caught as long as the check remains in the same
+// pass. (Although not even all of the checks are in place yet.)
+
+void break_in_finally() {
+	while (true) {
+		try {} finally {
+			break;
+		}
+	}
+}
+
+void continue_in_finally() {
+	while (true) {
+		try {} finally {
+			continue;
+		}
+	}
+}
+
+void goto_in_finally() {
+	while (true) {
+		try {} finally {
+			goto end_of_function;
+		}
+	}
+	end_of_function: {}
+}
+
+void labelled_break_in_finally() {
+	mainLoop: while (true) {
+		try {} finally {
+			break mainLoop;
+		}
+	}
+}
+
+void labelled_continue_in_finally() {
+	mainLoop: while (true) {
+		try {} finally {
+			continue mainLoop;
+		}
+	}
+}
+
+void void_return_in_finally() {
+	try {} finally {
+		return;
+	}
+}
+
+int value_return_in_finally() {
+	try {} finally {
+		return -7;
+	}
+
+}
+
+void main() {
+	// Should not compile.
+	return 1;
+}
