Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision 21f0aa833ab7b8f310f78ff014b4dd33de1d0e02)
+++ src/ControlStruct/ExceptTranslate.cc	(revision e9145a3d441a8ec02e96bb8f4c48446e11570f7b)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jun 14 16:49:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Tus Aug  8 16:54:00 2017
-// Update Count     : 7
+// Last Modified On : Thr Aug 17 15:48:00 2017
+// Update Count     : 8
 //
 
@@ -387,4 +387,17 @@
 	}
 
+	// TODO: Stoping the function from generating the 'return variable'
+	// entirely would be cleaner. But this does get ride of warnings.
+	CompoundStmt * set_and_ret(DeclarationWithType * var, Expression * val) {
+		CompoundStmt * block = new CompoundStmt( noLabels );
+		block->push_back( new ExprStmt( noLabels,
+			UntypedExpr::createAssign( new VariableExpr( var ), val )
+			) );
+		block->push_back( new ReturnStmt( noLabels,
+			new VariableExpr( var )
+			) );
+		return block;
+	}
+
 	FunctionDecl * ExceptionMutatorCore::create_terminate_match(
 			CatchList &handlers ) {
@@ -397,4 +410,5 @@
 		FunctionType * func_type = match_func_t.clone();
 		DeclarationWithType * except_obj = func_type->get_parameters().back();
+		DeclarationWithType * index_obj = func_type->get_returnVals().front();
 
 		// Index 1..{number of handlers}
@@ -409,5 +423,5 @@
 
 			// Create new body.
-			handler->set_body( new ReturnStmt( noLabels,
+			handler->set_body( set_and_ret( index_obj,
 				new ConstantExpr( Constant::from_int( index ) ) ) );
 
@@ -417,6 +431,6 @@
 		}
 
-		body->push_back( new ReturnStmt( noLabels, new ConstantExpr(
-			Constant::from_int( 0 ) ) ) );
+		body->push_back( set_and_ret( index_obj,
+			new ConstantExpr( Constant::from_int( 0 ) ) ) );
 
 		return new FunctionDecl("match", Type::StorageClasses(),
@@ -449,6 +463,7 @@
 		CompoundStmt * body = new CompoundStmt( noLabels );
 
-		FunctionType * func_type = match_func_t.clone();
+		FunctionType * func_type = handle_func_t.clone();
 		DeclarationWithType * except_obj = func_type->get_parameters().back();
+		DeclarationWithType * bool_obj = func_type->get_returnVals().front();
 
 		CatchList::iterator it;
@@ -463,5 +478,5 @@
 				handling_code->push_back( handler->get_body() );
 			}
-			handling_code->push_back( new ReturnStmt( noLabels,
+			handling_code->push_back( set_and_ret( bool_obj,
 				new ConstantExpr( Constant::from_bool( true ) ) ) );
 			handler->set_body( handling_code );
@@ -472,6 +487,6 @@
 		}
 
-		body->push_back( new ReturnStmt( noLabels, new ConstantExpr(
-			Constant::from_bool( false ) ) ) );
+		body->push_back( set_and_ret( bool_obj,
+			new ConstantExpr( Constant::from_bool( false ) ) ) );
 
 		return new FunctionDecl("handle", Type::StorageClasses(),
