Index: src/ControlStruct/HoistControlDecls.cpp
===================================================================
--- src/ControlStruct/HoistControlDecls.cpp	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ src/ControlStruct/HoistControlDecls.cpp	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -9,7 +9,7 @@
 // Author           : Andrew Beach
 // Created On       : Fri Dec  3 15:34:00 2021
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Feb  1 18:59:47 2022
-// Update Count     : 25
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Jul 24 12:00:00 2024
+// Update Count     : 3
 //
 
@@ -23,34 +23,39 @@
 namespace ControlStruct {
 
+namespace {
+
 template<typename StmtT>
 const Stmt * hoist( const StmtT * stmt ) {
-	// If no hoisting is needed, then make no changes.
-
-	if ( stmt->inits.size() == 0 ) {					// no declarations ?
+	// If no hoisting is needed (no declaration), then make no changes.
+	if ( stmt->inits.size() == 0 ) {
 		// if ( /* no conditional declarations */ ...  ) ...
 		return stmt;
-	} // if
+	}
 
-	// Put hoist declarations and modified statement in a compound statement.
-
-	CompoundStmt * block = new CompoundStmt( stmt->location ); // create empty compound statement
+	StmtT * mutStmt = mutate( stmt );
+	CompoundStmt * block = new CompoundStmt( stmt->location );
 	//    {}
 
-	for ( const Stmt * next : stmt->inits ) {			// link conditional declarations into compound
+	//    Label: if ( int x = f(), y = g(); ... ) ...
+	// link declarations into compound statement
+	for ( const Stmt * next : mutStmt->inits ) {
 		block->kids.push_back( next );
 	}
-	//    if ( int x = f(), y = g(); ... ) ...
-	// link declarations into compound statement
 	//    {
 	//         int x = f();
 	//         int y = g();
 	//    }
+	mutStmt->inits.clear();
+	//    Label: if ( ... ) ...
 
-	StmtT * mutStmt = mutate( stmt );					// create mutate handle to change statement
-	mutStmt->inits.clear();								// remove declarations
+	block->labels.swap( mutStmt->labels );
+	//    Label: {
+	//        int x = f();
+	//        int y = g();
+	//    }
 	//    if ( ... ) ...
 
-	block->kids.push_back( mutStmt );					// link modified statement into compound
-	//    {
+	block->kids.push_back( mutStmt );
+	//    Label: {
 	//        int x = f();
 	//        int y = g();
@@ -73,4 +78,6 @@
 };
 
+} // namespace
+
 // Hoist initialization out of for statements.
 void hoistControlDecls( TranslationUnit & translationUnit ) {
Index: src/ControlStruct/HoistControlDecls.hpp
===================================================================
--- src/ControlStruct/HoistControlDecls.hpp	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ src/ControlStruct/HoistControlDecls.hpp	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -9,6 +9,6 @@
 // Author           : Andrew Beach
 // Created On       : Fri Dec  3 15:31:00 2021
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan 31 22:25:07 2022
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Jul 24 12:04:00 2024
 // Update Count     : 3
 //
@@ -21,7 +21,10 @@
 
 namespace ControlStruct {
+
 /// Hoist declarations out of control flow statements into compound statement.
-/// Must happen before auto-gen routines are added.
+/// Must happen before auto-gen routines are added and after loop control
+/// flow is resolved.
 void hoistControlDecls( ast::TranslationUnit & translationUnit );
+
 } // namespace ControlStruct
 
Index: src/main.cpp
===================================================================
--- src/main.cpp	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ src/main.cpp	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -331,4 +331,6 @@
 		PASS( "Fix Unique Ids", Validate::fixUniqueIds, transUnit );
 		PASS( "Implement Corun", Concurrency::implementCorun, transUnit );
+		PASS( "Fix Label Address", Validate::fixLabelAddresses, transUnit );
+		PASS( "Fix Labels", ControlStruct::fixLabels, transUnit );
 		PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls, transUnit );
 
@@ -342,5 +344,4 @@
 		PASS( "Set Length From Initializer", Validate::setLengthFromInitializer, transUnit );
 		PASS( "Find Global Decls", Validate::findGlobalDecls, transUnit );
-		PASS( "Fix Label Address", Validate::fixLabelAddresses, transUnit );
 
 		if ( symtabp ) {
@@ -356,5 +357,4 @@
 
 		PASS( "Translate Throws", ControlStruct::translateThrows, transUnit );
-		PASS( "Fix Labels", ControlStruct::fixLabels, transUnit );
 		PASS( "Implement Waituntil", Concurrency::generateWaitUntil, transUnit  );
 		PASS( "Fix Names", CodeGen::fixNames, transUnit );
Index: sts/.expect/fallthrough.txt
===================================================================
--- tests/.expect/fallthrough.txt	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ 	(revision )
@@ -1,20 +1,0 @@
-case 1
-case 2
-case 3
-default
-
-case 1
-case 1
-0
-1
-2
-common
-default
-
-case 5
-common2
-
-case 5
-check
-common
-default
Index: sts/.expect/labelledExit.txt
===================================================================
--- tests/.expect/labelledExit.txt	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ 	(revision )
@@ -1,1 +1,0 @@
-labelledExit.cfa:181:25: warning: Compiled
Index: tests/Makefile.am
===================================================================
--- tests/Makefile.am	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ tests/Makefile.am	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -208,5 +208,5 @@
 
 SYNTAX_ONLY_CODE = expression typedefRedef variableDeclarator switch numericConstants identFuncDeclarator \
-	init1 limits nested-types cast labelledExit array quasiKeyword include/stdincludes include/includes builtins/sync warnings/self-assignment concurrency/waitfor/parse
+	init1 limits nested-types cast ctrl-flow/labelledExit array quasiKeyword include/stdincludes include/includes builtins/sync warnings/self-assignment concurrency/waitfor/parse
 ${SYNTAX_ONLY_CODE} : % : %.cfa ${CFACCBIN}
 	${CFACOMPILE_SYNTAX}
Index: tests/ctrl-flow/.expect/fallthrough.txt
===================================================================
--- tests/ctrl-flow/.expect/fallthrough.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/.expect/fallthrough.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,20 @@
+case 1
+case 2
+case 3
+default
+
+case 1
+case 1
+0
+1
+2
+common
+default
+
+case 5
+common2
+
+case 5
+check
+common
+default
Index: tests/ctrl-flow/.expect/goto.txt
===================================================================
--- tests/ctrl-flow/.expect/goto.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/.expect/goto.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,1 @@
+goto-loop loop loop end
Index: tests/ctrl-flow/.expect/labelledExit.txt
===================================================================
--- tests/ctrl-flow/.expect/labelledExit.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/.expect/labelledExit.txt	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,1 @@
+ctrl-flow/labelledExit.cfa:181:25: warning: Compiled
Index: tests/ctrl-flow/fallthrough.cfa
===================================================================
--- tests/ctrl-flow/fallthrough.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/fallthrough.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,126 @@
+//
+// Cforall Version 1.0.0 Copyright (C) 2018 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+//
+// fallthrough.cfa --
+//
+// Author           : Rob Schluntz
+// Created On       : Wed Mar 14 10:06:25 2018
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Mon Dec 24 11:24:35 2018
+// Update Count     : 22
+//
+
+#include <fstream.hfa>
+
+void test(int choice) {
+	choose ( choice ) {
+	  case 1:
+		sout | "case 1";
+		fallthru;
+	  case 2:
+		sout | "case 2";
+		fallthru;
+		sout | "did not fallthru";
+		if ( 7 ) fallthru common2;
+		fallthru common1;
+	  case 3:
+		sout | "case 3";
+		fallthru default;
+		fallthru common1;
+	  common1:
+		sout | "common1";
+		// break
+	  case 4:
+		sout | "case 4";
+		fallthru common2;
+	  case 5:
+		sout | "case 5";
+		fallthru common2;
+		fallthru default;
+	  case 6:
+		sout | "case 6";
+		fallthru common2;
+	  common2:
+		sout | "common2";
+		// break
+	  default:
+		sout | "default";
+		fallthru;
+	} // choose
+
+	sout | nl;
+
+	switch ( choice ) {
+	  case 1:
+		sout | "case 1";
+		switch ( choice ) {
+		  case 1:
+			sout | "case 1";
+			for ( int i = 0; i < 4; i += 1 ) {
+				sout | i;
+				if ( i == 2 ) fallthru common;
+			} // for
+		} // switch
+		break;
+	  case 5:
+		sout | "case 5";
+		if ( choice == 5 ) {
+			if ( choice != 5 ) {
+				sout | "error";
+			} else {
+				sout | "check";
+				fallthru common;
+			} // if
+		} // if
+	  common:
+		sout | "common";
+		fallthru;
+		break;
+	  default:
+		sout | "default";
+		fallthru;
+	} // switch
+
+#if ERR1
+	// ERROR: fallthrough must be enclosed in switch or choose
+	fallthru;
+	// ERROR: fallthrough must be enclosed in switch or choose
+	fallthru common4;
+	// ERROR: fallthrough must be enclosed in switch or choose
+	fallthru default;
+	choose ( 3 ) {
+	  case 2:
+		for () {
+			choose ( 2 ) {
+			  case 1:
+				// ERROR: default is later, but in a different switch
+				fallthru default;
+				// ERROR: common3 is later, but not at the same level as a case clause
+				fallthru common3;
+			}
+		  common3: ;
+		} // for
+	  default:
+	  case 1:
+	  common4:
+		// ERROR: attempt to jump up with fallthrough
+		if ( 7 ) fallthru common4;
+		// ERROR: attempt to jump up with fallthrough
+		fallthru default;
+	} // choose
+#endif
+}
+
+int main() {
+	test( 1 );
+	sout | nl;
+	test( 5 );
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa fallthrough.cfa" //
+// End: //
Index: tests/ctrl-flow/goto.cfa
===================================================================
--- tests/ctrl-flow/goto.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/goto.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,22 @@
+// Some runtime tests for goto.
+
+#include <fstream.hfa>
+
+// Make sure loop hoisting
+void gotoLabelledLoop() {
+	sout | "goto-loop";
+	goto label;
+	sout | "!";
+
+	// Verbose loop will lead to lifting.
+	label: for (int i = 0 ; i < 2 ; ++i) {
+		sout | "loop";
+	}
+	sout | "end" | nl;
+}
+
+int main(int argc, char * argv[]) {
+	sout | nlOff;
+
+	gotoLabelledLoop();
+}
Index: tests/ctrl-flow/labelledExit.cfa
===================================================================
--- tests/ctrl-flow/labelledExit.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
+++ tests/ctrl-flow/labelledExit.cfa	(revision 878b1385fe27c9319958bdb5da85d88798f2768b)
@@ -0,0 +1,187 @@
+// 
+// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
+//
+// The contents of this file are covered under the licence agreement in the
+// file "LICENCE" distributed with Cforall.
+// 
+// labelledExit.cfa -- 
+// 
+// Author           : Peter A. Buhr
+// Created On       : Wed Aug 10 07:29:39 2016
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Sat Jun  5 10:07:34 2021
+// Update Count     : 13
+// 
+
+int foo() {
+  	int i;
+  	int x, y;
+
+  	x = 0; y = 0;
+
+  	// block, labelled exits
+
+  Block: {
+  		if ( x == y ) {
+  			for ( ; i < y; ) {
+  				y += 1;
+  				if ( y < 10 ) break Block;
+  			}
+  		}
+  	}
+
+  	// loops, labelled exits
+
+  w1: while ( y == 10 );
+
+  w2: while ( x < 10 ) {
+  		while (y < 5 ) {
+  			if ( y == 3 ) break w2;
+  		}
+  		x += 1;
+  	}
+
+  A: for ( i = 0; i < 10; i += 1 ) {
+  	  B: for ( i = 0; i < 10; i += 1 ) {
+  		  C: for ( i = 0; i < 10; i += 1 ) {
+  				goto A;
+  				goto B;
+  				goto C;
+  				continue A;
+  				continue B;
+  				continue C;
+  				continue;
+  				break A;
+  				break B;
+  				break C;
+  				break;
+  			}
+  		}
+  	}
+
+  D: for () {
+  		break D;
+  		continue D;
+  	}
+
+  Z : i += 1;
+  	goto Z;
+  X: Y: for () {
+  		i += 1;
+  		if ( i > 5 ) continue X;
+  		if ( i < 5 ) break X;
+  		if ( i < 5 ) break Y;
+  		break;
+  	}
+  XX: for () {
+  	  YY: for () {
+  		  ZZ: for () {
+  				i += 1;
+  				if ( i > 5 ) continue XX;
+  				if ( i < 5 ) continue YY;
+  				if ( i < 5 ) continue ZZ;
+  				if ( i > 5 ) break XX;
+  				if ( i < 5 ) break YY;
+  				if ( i < 5 ) break ZZ;
+  				break;
+  			}
+  		}
+  	}
+
+  	for () ;
+  	for ( int i = 0 ;; ) ;
+  	for (  ; i < 0; ) ;
+  	for (  ; ; i += 1 ) ;
+  L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
+  L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
+  L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
+  L31: L32: L33: L34:
+  	for () {
+  		break L0;
+  	}
+
+  	// switch/choose, labelled exits
+
+  Switch: switch ( i ) {
+  	  default:
+  		i += 1;
+  	  case 0:
+  		i += 1;
+  		break Switch;
+  	  case 1:
+  		switch ( i ) {
+  		  case 0:
+  			break Switch;
+  		  default:
+  			; break;
+  		}
+  	}
+
+  Choose: choose ( i ) {
+  	  default:
+  		i += 1;
+  	  case 0:
+  		i += 1;
+  		break Choose;
+  	  case 1:
+  		choose ( i ) {
+  		  case 0:
+  			break;
+  		  default:
+  			break Choose;
+  		}
+  		fallthru;
+  	  case 2:
+  		i += 1;
+  	}
+
+  	// all nested control options, labelled exits
+
+  Comp: {
+	  Try: try {
+		  For: for ( ;; ) {
+			  While: while ( true ) {
+				  Do: do {
+					  If: if ( true ) {
+						  Switch2: switch ( 3 ) {
+							  case 3:
+								break Try;
+								break Comp;
+	  							break For;		continue For;
+	  							break While;	continue While;
+	  							break Do;		continue Do;
+	  							break If;
+	  							break Switch2;
+							} // switch
+						} // if
+					} while ( true );
+				} // while
+			} // for
+		} finally {} // always executed
+	} // compound
+
+	// computed goto
+	{
+		void *array[] = { &&foo, &&bar, &&hack };
+	  foo: bar: hack:
+		&&foo;
+		&&bar;
+		goto *array[i];
+	}
+
+  Q: if ( i > 5 ) {
+		i += 1;
+		break Q;
+	}
+	else
+		i += 1;
+}
+
+int main( int argc, char const *argv[] ) {
+    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
+}
+
+// Local Variables: //
+// tab-width: 4 //
+// compile-command: "cfa labelledExit.cfa" //
+// End: //
Index: sts/fallthrough.cfa
===================================================================
--- tests/fallthrough.cfa	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ 	(revision )
@@ -1,126 +1,0 @@
-//
-// Cforall Version 1.0.0 Copyright (C) 2018 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-//
-// fallthrough.cfa --
-//
-// Author           : Rob Schluntz
-// Created On       : Wed Mar 14 10:06:25 2018
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Dec 24 11:24:35 2018
-// Update Count     : 22
-//
-
-#include <fstream.hfa>
-
-void test(int choice) {
-	choose ( choice ) {
-	  case 1:
-		sout | "case 1";
-		fallthru;
-	  case 2:
-		sout | "case 2";
-		fallthru;
-		sout | "did not fallthru";
-		if ( 7 ) fallthru common2;
-		fallthru common1;
-	  case 3:
-		sout | "case 3";
-		fallthru default;
-		fallthru common1;
-	  common1:
-		sout | "common1";
-		// break
-	  case 4:
-		sout | "case 4";
-		fallthru common2;
-	  case 5:
-		sout | "case 5";
-		fallthru common2;
-		fallthru default;
-	  case 6:
-		sout | "case 6";
-		fallthru common2;
-	  common2:
-		sout | "common2";
-		// break
-	  default:
-		sout | "default";
-		fallthru;
-	} // choose
-
-	sout | nl;
-
-	switch ( choice ) {
-	  case 1:
-		sout | "case 1";
-		switch ( choice ) {
-		  case 1:
-			sout | "case 1";
-			for ( int i = 0; i < 4; i += 1 ) {
-				sout | i;
-				if ( i == 2 ) fallthru common;
-			} // for
-		} // switch
-		break;
-	  case 5:
-		sout | "case 5";
-		if ( choice == 5 ) {
-			if ( choice != 5 ) {
-				sout | "error";
-			} else {
-				sout | "check";
-				fallthru common;
-			} // if
-		} // if
-	  common:
-		sout | "common";
-		fallthru;
-		break;
-	  default:
-		sout | "default";
-		fallthru;
-	} // switch
-
-#if ERR1
-	// ERROR: fallthrough must be enclosed in switch or choose
-	fallthru;
-	// ERROR: fallthrough must be enclosed in switch or choose
-	fallthru common4;
-	// ERROR: fallthrough must be enclosed in switch or choose
-	fallthru default;
-	choose ( 3 ) {
-	  case 2:
-		for () {
-			choose ( 2 ) {
-			  case 1:
-				// ERROR: default is later, but in a different switch
-				fallthru default;
-				// ERROR: common3 is later, but not at the same level as a case clause
-				fallthru common3;
-			}
-		  common3: ;
-		} // for
-	  default:
-	  case 1:
-	  common4:
-		// ERROR: attempt to jump up with fallthrough
-		if ( 7 ) fallthru common4;
-		// ERROR: attempt to jump up with fallthrough
-		fallthru default;
-	} // choose
-#endif
-}
-
-int main() {
-	test( 1 );
-	sout | nl;
-	test( 5 );
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa fallthrough.cfa" //
-// End: //
Index: sts/labelledExit.cfa
===================================================================
--- tests/labelledExit.cfa	(revision 1ad112a5b1babfdac4e2f732d3937ece43b101a1)
+++ 	(revision )
@@ -1,187 +1,0 @@
-// 
-// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
-//
-// The contents of this file are covered under the licence agreement in the
-// file "LICENCE" distributed with Cforall.
-// 
-// labelledExit.cfa -- 
-// 
-// Author           : Peter A. Buhr
-// Created On       : Wed Aug 10 07:29:39 2016
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jun  5 10:07:34 2021
-// Update Count     : 13
-// 
-
-int foo() {
-  	int i;
-  	int x, y;
-
-  	x = 0; y = 0;
-
-  	// block, labelled exits
-
-  Block: {
-  		if ( x == y ) {
-  			for ( ; i < y; ) {
-  				y += 1;
-  				if ( y < 10 ) break Block;
-  			}
-  		}
-  	}
-
-  	// loops, labelled exits
-
-  w1: while ( y == 10 );
-
-  w2: while ( x < 10 ) {
-  		while (y < 5 ) {
-  			if ( y == 3 ) break w2;
-  		}
-  		x += 1;
-  	}
-
-  A: for ( i = 0; i < 10; i += 1 ) {
-  	  B: for ( i = 0; i < 10; i += 1 ) {
-  		  C: for ( i = 0; i < 10; i += 1 ) {
-  				goto A;
-  				goto B;
-  				goto C;
-  				continue A;
-  				continue B;
-  				continue C;
-  				continue;
-  				break A;
-  				break B;
-  				break C;
-  				break;
-  			}
-  		}
-  	}
-
-  D: for () {
-  		break D;
-  		continue D;
-  	}
-
-  Z : i += 1;
-  	goto Z;
-  X: Y: for () {
-  		i += 1;
-  		if ( i > 5 ) continue X;
-  		if ( i < 5 ) break X;
-  		if ( i < 5 ) break Y;
-  		break;
-  	}
-  XX: for () {
-  	  YY: for () {
-  		  ZZ: for () {
-  				i += 1;
-  				if ( i > 5 ) continue XX;
-  				if ( i < 5 ) continue YY;
-  				if ( i < 5 ) continue ZZ;
-  				if ( i > 5 ) break XX;
-  				if ( i < 5 ) break YY;
-  				if ( i < 5 ) break ZZ;
-  				break;
-  			}
-  		}
-  	}
-
-  	for () ;
-  	for ( int i = 0 ;; ) ;
-  	for (  ; i < 0; ) ;
-  	for (  ; ; i += 1 ) ;
-  L0:  L1:  L2:  L3:  L4:  L5:  L6:  L7:  L8:  L9:
-  L10: L11: L12: L13: L14: L15: L16: L17: L18: L19:
-  L20: L21: L22: L23: L24: L25: L26: L27: L28: L29:
-  L31: L32: L33: L34:
-  	for () {
-  		break L0;
-  	}
-
-  	// switch/choose, labelled exits
-
-  Switch: switch ( i ) {
-  	  default:
-  		i += 1;
-  	  case 0:
-  		i += 1;
-  		break Switch;
-  	  case 1:
-  		switch ( i ) {
-  		  case 0:
-  			break Switch;
-  		  default:
-  			; break;
-  		}
-  	}
-
-  Choose: choose ( i ) {
-  	  default:
-  		i += 1;
-  	  case 0:
-  		i += 1;
-  		break Choose;
-  	  case 1:
-  		choose ( i ) {
-  		  case 0:
-  			break;
-  		  default:
-  			break Choose;
-  		}
-  		fallthru;
-  	  case 2:
-  		i += 1;
-  	}
-
-  	// all nested control options, labelled exits
-
-  Comp: {
-	  Try: try {
-		  For: for ( ;; ) {
-			  While: while ( true ) {
-				  Do: do {
-					  If: if ( true ) {
-						  Switch2: switch ( 3 ) {
-							  case 3:
-								break Try;
-								break Comp;
-	  							break For;		continue For;
-	  							break While;	continue While;
-	  							break Do;		continue Do;
-	  							break If;
-	  							break Switch2;
-							} // switch
-						} // if
-					} while ( true );
-				} // while
-			} // for
-		} finally {} // always executed
-	} // compound
-
-	// computed goto
-	{
-		void *array[] = { &&foo, &&bar, &&hack };
-	  foo: bar: hack:
-		&&foo;
-		&&bar;
-		goto *array[i];
-	}
-
-  Q: if ( i > 5 ) {
-		i += 1;
-		break Q;
-	}
-	else
-		i += 1;
-}
-
-int main( int argc, char const *argv[] ) {
-    #pragma GCC warning "Compiled"                      // force non-empty .expect file, NO TABS!!!
-}
-
-// Local Variables: //
-// tab-width: 4 //
-// compile-command: "cfa labelledExit.cfa" //
-// End: //
