Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision 98233b34215724b46c43975e0175ef4696c356f3)
+++ src/ControlStruct/ExceptTranslate.cc	(revision 42a02ce585b26d09b985423e9ebdd770ef5a7f07)
@@ -9,7 +9,7 @@
 // Author           : Andrew Beach
 // Created On       : Wed Jun 14 16:49:00 2017
-// Last Modified By : Andrew Beach
-// Last Modified On : Wed Jun 24 11:18:00 2020
-// Update Count     : 17
+// Last Modified By : Henry Xue
+// Last Modified On : Tue Aug 03 10:05:51 2021
+// Update Count     : 18
 //
 
@@ -320,11 +320,10 @@
 				static_cast<ObjectDecl *>( handler->get_decl() );
 			ObjectDecl * local_except = handler_decl->clone();
-			local_except->set_init(
-				new ListInit({ new SingleInit(
-					new VirtualCastExpr( nameOf( except_obj ),
-						local_except->get_type()
-						)
-					) })
+			VirtualCastExpr * vcex = new VirtualCastExpr(
+				nameOf( except_obj ),
+				local_except->get_type()
 				);
+			vcex->location = handler->location;
+			local_except->set_init( new ListInit({ new SingleInit( vcex ) }) );
 			block->push_back( new DeclStmt( local_except ) );
 
@@ -392,7 +391,11 @@
 
 		// Check for type match.
-		Expression * cond = UntypedExpr::createAssign( nameOf( local_except ),
-			new VirtualCastExpr( nameOf( except_obj ),
-				local_except->get_type()->clone() ) );
+		VirtualCastExpr * vcex = new VirtualCastExpr(
+			nameOf( except_obj ),
+			local_except->get_type()->clone()
+			);
+		vcex->location = modded_handler->location;
+		Expression * cond = UntypedExpr::createAssign(
+			nameOf( local_except ), vcex );
 
 		// Add the check on the conditional if it is provided.
