Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision e9145a3d441a8ec02e96bb8f4c48446e11570f7b)
+++ src/ControlStruct/ExceptTranslate.cc	(revision 8f6dfe7bd6f31ce1ccdbf80675ca4614aa0c6e68)
@@ -10,6 +10,6 @@
 // Created On       : Wed Jun 14 16:49:00 2017
 // Last Modified By : Andrew Beach
-// Last Modified On : Thr Aug 17 15:48:00 2017
-// Update Count     : 8
+// Last Modified On : Thr Aug 17 17:19:00 2017
+// Update Count     : 9
 //
 
@@ -166,5 +166,6 @@
 			/*bitfieldWidth*/ NULL,
 			new BasicType( noQualifiers, BasicType::Bool ),
-			/*init*/ NULL
+			/*init*/ NULL,
+			std::list<Attribute *>{ new Attribute( "unused" ) }
 			);
 		ObjectDecl voidptr_obj(
@@ -183,7 +184,10 @@
 			);
 
+		ObjectDecl * unused_index_obj = index_obj.clone();
+		unused_index_obj->attributes.push_back( new Attribute( "unused" ) );
+
 		catch_func_t.get_parameters().push_back( index_obj.clone() );
 		catch_func_t.get_parameters().push_back( exception_obj.clone() );
-		match_func_t.get_returnVals().push_back( index_obj.clone() );
+		match_func_t.get_returnVals().push_back( unused_index_obj );
 		match_func_t.get_parameters().push_back( exception_obj.clone() );
 		handle_func_t.get_returnVals().push_back( bool_obj.clone() );
@@ -387,17 +391,4 @@
 	}
 
-	// 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 ) {
@@ -410,5 +401,4 @@
 		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}
@@ -423,5 +413,5 @@
 
 			// Create new body.
-			handler->set_body( set_and_ret( index_obj,
+			handler->set_body( new ReturnStmt( noLabels,
 				new ConstantExpr( Constant::from_int( index ) ) ) );
 
@@ -431,5 +421,5 @@
 		}
 
-		body->push_back( set_and_ret( index_obj,
+		body->push_back( new ReturnStmt( noLabels,
 			new ConstantExpr( Constant::from_int( 0 ) ) ) );
 
@@ -465,5 +455,4 @@
 		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;
@@ -478,5 +467,5 @@
 				handling_code->push_back( handler->get_body() );
 			}
-			handling_code->push_back( set_and_ret( bool_obj,
+			handling_code->push_back( new ReturnStmt( noLabels,
 				new ConstantExpr( Constant::from_bool( true ) ) ) );
 			handler->set_body( handling_code );
@@ -487,5 +476,5 @@
 		}
 
-		body->push_back( set_and_ret( bool_obj,
+		body->push_back( new ReturnStmt( noLabels,
 			new ConstantExpr( Constant::from_bool( false ) ) ) );
 
