Index: src/ControlStruct/ForExprMutator.cc
===================================================================
--- src/ControlStruct/ForExprMutator.cc	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/ForExprMutator.cc	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Mar 11 22:26:52 2019
-// Update Count     : 14
+// Last Modified On : Tue Feb  1 09:26:12 2022
+// Update Count     : 16
 //
 
@@ -45,6 +45,6 @@
 		return hoist( forStmt, forStmt->initialization );
 	}
-	Statement * ForExprMutator::postmutate( WhileStmt * whileStmt ) {
-		return hoist( whileStmt, whileStmt->initialization );
+	Statement * ForExprMutator::postmutate( WhileDoStmt * whileDoStmt ) {
+		return hoist( whileDoStmt, whileDoStmt->initialization );
 	}
 } // namespace ControlStruct
Index: src/ControlStruct/ForExprMutator.h
===================================================================
--- src/ControlStruct/ForExprMutator.h	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/ForExprMutator.h	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jan 30 09:14:46 2022
-// Update Count     : 6
+// Last Modified On : Tue Feb  1 09:18:50 2022
+// Update Count     : 7
 //
 
@@ -18,5 +18,5 @@
 class IfStmt;
 class ForStmt;
-class WhileStmt;
+class WhileDoStmt;
 class Statement;
 
@@ -26,5 +26,5 @@
 		Statement * postmutate( IfStmt * );
 		Statement * postmutate( ForStmt * );
-		Statement * postmutate( WhileStmt * );
+		Statement * postmutate( WhileDoStmt * );
 	};
 } // namespace ControlStruct
Index: src/ControlStruct/HoistControlDecls.cpp
===================================================================
--- src/ControlStruct/HoistControlDecls.cpp	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/HoistControlDecls.cpp	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -10,6 +10,6 @@
 // Created On       : Fri Dec  3 15:34:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan 31 18:52:35 2022
-// Update Count     : 23
+// Last Modified On : Tue Feb  1 18:59:47 2022
+// Update Count     : 25
 //
 
@@ -35,6 +35,5 @@
 
 	CompoundStmt * block = new CompoundStmt( stmt->location ); // create empty compound statement
-	//    {
-	//    }
+	//    {}
 
 	for ( const Stmt * next : stmt->inits ) {			// link conditional declarations into compound
@@ -69,6 +68,6 @@
 		return hoist<ForStmt>( stmt );
 	}
-	const Stmt * postvisit( const WhileStmt * stmt ) {
-		return hoist<WhileStmt>( stmt );
+	const Stmt * postvisit( const WhileDoStmt * stmt ) {
+		return hoist<WhileDoStmt>( stmt );
 	}
 };
Index: src/ControlStruct/LabelFixer.cc
===================================================================
--- src/ControlStruct/LabelFixer.cc	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/LabelFixer.cc	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan 31 22:28:31 2022
-// Update Count     : 161
+// Last Modified On : Tue Feb  1 09:12:09 2022
+// Update Count     : 162
 //
 
@@ -29,5 +29,5 @@
 bool LabelFixer::Entry::insideLoop() {
 	return ( dynamic_cast< ForStmt * > ( definition ) ||
-		dynamic_cast< WhileStmt * > ( definition )  );
+		dynamic_cast< WhileDoStmt * > ( definition )  );
 }
 
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/MLEMutator.cc	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Wed Jan 22 11:50:00 2020
-// Update Count     : 223
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Tue Feb  1 09:26:28 2022
+// Update Count     : 225
 //
 
@@ -39,5 +39,5 @@
 	namespace {
 		bool isLoop( const MultiLevelExitMutator::Entry & e ) {
-			return dynamic_cast< WhileStmt * >( e.get_controlStructure() )
+			return dynamic_cast< WhileDoStmt * >( e.get_controlStructure() )
 				|| dynamic_cast< ForStmt * >( e.get_controlStructure() );
 		}
@@ -295,6 +295,6 @@
 	}
 
-	void MultiLevelExitMutator::premutate( WhileStmt * whileStmt ) {
-		return prehandleLoopStmt( whileStmt );
+	void MultiLevelExitMutator::premutate( WhileDoStmt * whileDoStmt ) {
+		return prehandleLoopStmt( whileDoStmt );
 	}
 
@@ -303,6 +303,6 @@
 	}
 
-	Statement * MultiLevelExitMutator::postmutate( WhileStmt * whileStmt ) {
-		return posthandleLoopStmt( whileStmt );
+	Statement * MultiLevelExitMutator::postmutate( WhileDoStmt * whileDoStmt ) {
+		return posthandleLoopStmt( whileDoStmt );
 	}
 
Index: src/ControlStruct/MLEMutator.h
===================================================================
--- src/ControlStruct/MLEMutator.h	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/MLEMutator.h	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Andrew Beach
-// Last Modified On : Wed Jan 22 11:50:00 2020
-// Update Count     : 48
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Tue Feb  1 09:27:24 2022
+// Update Count     : 50
 //
 
@@ -42,6 +42,6 @@
 		void premutate( CompoundStmt *cmpndStmt );
 		Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException );
-		void premutate( WhileStmt *whileStmt );
-		Statement * postmutate( WhileStmt *whileStmt );
+		void premutate( WhileDoStmt *whileDoStmt );
+		Statement * postmutate( WhileDoStmt *whileDoStmt );
 		void premutate( ForStmt *forStmt );
 		Statement * postmutate( ForStmt *forStmt );
@@ -67,5 +67,5 @@
 				stmt( stmt ), breakExit( breakExit ), contExit( contExit ) {}
 
-			explicit Entry( WhileStmt *stmt, Label breakExit, Label contExit ) :
+			explicit Entry( WhileDoStmt *stmt, Label breakExit, Label contExit ) :
 				stmt( stmt ), breakExit( breakExit ), contExit( contExit ) {}
 
Index: src/ControlStruct/MultiLevelExit.cpp
===================================================================
--- src/ControlStruct/MultiLevelExit.cpp	(revision 34c32f098e353062f8da7759b872f43ad7bc5a74)
+++ src/ControlStruct/MultiLevelExit.cpp	(revision 3b0bc169405b67c6da2825bdc47c869fa9d0fd59)
@@ -10,6 +10,6 @@
 // Created On       : Mon Nov  1 13:48:00 2021
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Mon Jan 31 22:35:08 2022
-// Update Count     : 28
+// Last Modified On : Tue Feb  1 18:48:47 2022
+// Update Count     : 29
 //
 
@@ -40,5 +40,5 @@
 
 	enum Kind {
-		ForStmtK, WhileStmtK, CompoundStmtK, IfStmtK, CaseStmtK, SwitchStmtK, TryStmtK
+		ForStmtK, WhileDoStmtK, CompoundStmtK, IfStmtK, CaseStmtK, SwitchStmtK, TryStmtK
 	} kind;
 
@@ -53,6 +53,6 @@
 	Entry( const ForStmt * stmt, Label breakExit, Label contExit ) :
 		stmt( stmt ), firstTarget( breakExit ), secondTarget( contExit ), kind( ForStmtK ) {}
-	Entry( const WhileStmt * stmt, Label breakExit, Label contExit ) :
-		stmt( stmt ), firstTarget( breakExit ), secondTarget( contExit ), kind( WhileStmtK ) {}
+	Entry( const WhileDoStmt * stmt, Label breakExit, Label contExit ) :
+		stmt( stmt ), firstTarget( breakExit ), secondTarget( contExit ), kind( WhileDoStmtK ) {}
 	Entry( const CompoundStmt *stmt, Label breakExit ) :
 		stmt( stmt ), firstTarget( breakExit ), secondTarget(), kind( CompoundStmtK ) {}
@@ -66,5 +66,5 @@
 		stmt( stmt ), firstTarget( breakExit ), secondTarget(), kind( TryStmtK ) {}
 
-	bool isContTarget() const { return kind <= WhileStmtK; }
+	bool isContTarget() const { return kind <= WhileDoStmtK; }
 	bool isBreakTarget() const { return kind != CaseStmtK; }
 	bool isFallTarget() const { return kind == CaseStmtK; }
@@ -72,5 +72,5 @@
 
 	// These routines set a target as being "used" by a BranchStmt
-	Label useContExit() { assert( kind <= WhileStmtK ); return useTarget(secondTarget); }
+	Label useContExit() { assert( kind <= WhileDoStmtK ); return useTarget(secondTarget); }
 	Label useBreakExit() { assert( kind != CaseStmtK ); return useTarget(firstTarget); }
 	Label useFallExit() { assert( kind == CaseStmtK );  return useTarget(firstTarget); }
@@ -78,5 +78,5 @@
 
 	// These routines check if a specific label for a statement is used by a BranchStmt
-	bool isContUsed() const { assert( kind <= WhileStmtK ); return secondTarget.used; }
+	bool isContUsed() const { assert( kind <= WhileDoStmtK ); return secondTarget.used; }
 	bool isBreakUsed() const { assert( kind != CaseStmtK ); return firstTarget.used; }
 	bool isFallUsed() const { assert( kind == CaseStmtK ); return firstTarget.used; }
@@ -112,6 +112,6 @@
 	const CompoundStmt * previsit( const CompoundStmt * );
 	const BranchStmt * postvisit( const BranchStmt * );
-	void previsit( const WhileStmt * );
-	const WhileStmt * postvisit( const WhileStmt * );
+	void previsit( const WhileDoStmt * );
+	const WhileDoStmt * postvisit( const WhileDoStmt * );
 	void previsit( const ForStmt * );
 	const ForStmt * postvisit( const ForStmt * );
@@ -342,9 +342,9 @@
 }
 
-void MultiLevelExitCore::previsit( const WhileStmt * stmt ) {
+void MultiLevelExitCore::previsit( const WhileDoStmt * stmt ) {
 	return prehandleLoopStmt( stmt );
 }
 
-const WhileStmt * MultiLevelExitCore::postvisit( const WhileStmt * stmt ) {
+const WhileDoStmt * MultiLevelExitCore::postvisit( const WhileDoStmt * stmt ) {
 	return posthandleLoopStmt( stmt );
 }
