Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 07de76bb7a0e1179ac6fb9bae0cb96e709315c84)
+++ src/CodeGen/CodeGenerator.cc	(revision 4a40f695cc241cf2f33832c81c6644b6c5266085)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Dec 13 23:13:28 2019
-// Update Count     : 508
+// Last Modified On : Sun Feb 16 08:32:48 2020
+// Update Count     : 532
 //
 #include "CodeGenerator.h"
@@ -39,5 +39,5 @@
 	int CodeGenerator::tabsize = 4;
 
-	// the kinds of statements that would ideally be followed by whitespace
+	// The kinds of statements that would ideally be followed by whitespace.
 	bool wantSpacing( Statement * stmt) {
 		return dynamic_cast< IfStmt * >( stmt ) || dynamic_cast< CompoundStmt * >( stmt ) ||
@@ -78,7 +78,5 @@
 	}
 
-	/* Using updateLocation at the beginning of a node and endl
-	 * within a node should become the method of formating.
-	 */
+	// Using updateLocation at the beginning of a node and endl within a node should become the method of formating.
 	void CodeGenerator::updateLocation( CodeLocation const & to ) {
 		// skip if linemarks shouldn't appear or if codelocation is unset
@@ -95,5 +93,5 @@
 		} else {
 			output << "\n# " << to.first_line << " \"" << to.filename
-			       << "\"\n" << indent;
+				   << "\"\n" << indent;
 			currentLocation = to;
 		}
@@ -131,5 +129,5 @@
 
 	void CodeGenerator::genAttributes( list< Attribute * > & attributes ) {
-	  if ( attributes.empty() ) return;
+		if ( attributes.empty() ) return;
 		output << "__attribute__ ((";
 		for ( list< Attribute * >::iterator attr( attributes.begin() );; ) {
@@ -140,5 +138,5 @@
 				output << ")";
 			} // if
-		  if ( ++attr == attributes.end() ) break;
+			if ( ++attr == attributes.end() ) break;
 			output << ",";								// separator
 		} // for
@@ -165,8 +163,8 @@
 		previsit( (BaseSyntaxNode *)node );
 		GuardAction( [this, node](){
-			if ( options.printExprTypes && node->result ) {
-				output << " /* " << genType( node->result, "", options ) << " */ ";
-			}
-		} );
+				if ( options.printExprTypes && node->result ) {
+					output << " /* " << genType( node->result, "", options ) << " */ ";
+				}
+			} );
 	}
 
@@ -399,8 +397,8 @@
 		extension( applicationExpr );
 		if ( VariableExpr * varExpr = dynamic_cast< VariableExpr* >( applicationExpr->get_function() ) ) {
-			OperatorInfo opInfo;
-			if ( varExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( varExpr->get_var()->get_name(), opInfo ) ) {
+			const OperatorInfo * opInfo;
+			if ( varExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && ( opInfo = operatorLookup( varExpr->get_var()->get_name() ) ) ) {
 				std::list< Expression* >::iterator arg = applicationExpr->get_args().begin();
-				switch ( opInfo.type ) {
+				switch ( opInfo->type ) {
 				  case OT_INDEX:
 					assert( applicationExpr->get_args().size() == 2 );
@@ -423,12 +421,12 @@
 						output << "(";
 						(*arg++)->accept( *visitor );
-						output << ") /* " << opInfo.inputName << " */";
+						output << ") /* " << opInfo->inputName << " */";
 					} else if ( applicationExpr->get_args().size() == 2 ) {
 						// intrinsic two parameter constructors are essentially bitwise assignment
 						output << "(";
 						(*arg++)->accept( *visitor );
-						output << opInfo.symbol;
+						output << opInfo->symbol;
 						(*arg)->accept( *visitor );
-						output << ") /* " << opInfo.inputName << " */";
+						output << ") /* " << opInfo->inputName << " */";
 					} else {
 						// no constructors with 0 or more than 2 parameters
@@ -441,5 +439,5 @@
 					assert( applicationExpr->get_args().size() == 1 );
 					output << "(";
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					(*arg)->accept( *visitor );
 					output << ")";
@@ -450,5 +448,5 @@
 					assert( applicationExpr->get_args().size() == 1 );
 					(*arg)->accept( *visitor );
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					break;
 
@@ -459,5 +457,5 @@
 					output << "(";
 					(*arg++)->accept( *visitor );
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					(*arg)->accept( *visitor );
 					output << ")";
@@ -486,8 +484,8 @@
 		extension( untypedExpr );
 		if ( NameExpr * nameExpr = dynamic_cast< NameExpr* >( untypedExpr->function ) ) {
-			OperatorInfo opInfo;
-			if ( operatorLookup( nameExpr->name, opInfo ) ) {
+			const OperatorInfo * opInfo = operatorLookup( nameExpr->name );
+			if ( opInfo ) {
 				std::list< Expression* >::iterator arg = untypedExpr->args.begin();
-				switch ( opInfo.type ) {
+				switch ( opInfo->type ) {
 				  case OT_INDEX:
 					assert( untypedExpr->args.size() == 2 );
@@ -508,12 +506,12 @@
 						output << "(";
 						(*arg++)->accept( *visitor );
-						output << ") /* " << opInfo.inputName << " */";
+						output << ") /* " << opInfo->inputName << " */";
 					} else if ( untypedExpr->get_args().size() == 2 ) {
 						// intrinsic two parameter constructors are essentially bitwise assignment
 						output << "(";
 						(*arg++)->accept( *visitor );
-						output << opInfo.symbol;
+						output << opInfo->symbol;
 						(*arg)->accept( *visitor );
-						output << ") /* " << opInfo.inputName << " */";
+						output << ") /* " << opInfo->inputName << " */";
 					} else {
 						// no constructors with 0 or more than 2 parameters
@@ -521,7 +519,7 @@
 						output << "(";
 						(*arg++)->accept( *visitor );
-						output << opInfo.symbol << "{ ";
+						output << opInfo->symbol << "{ ";
 						genCommaList( arg, untypedExpr->args.end() );
-						output << "}) /* " << opInfo.inputName << " */";
+						output << "}) /* " << opInfo->inputName << " */";
 					} // if
 					break;
@@ -532,5 +530,5 @@
 					assert( untypedExpr->args.size() == 1 );
 					output << "(";
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					(*arg)->accept( *visitor );
 					output << ")";
@@ -541,5 +539,5 @@
 					assert( untypedExpr->args.size() == 1 );
 					(*arg)->accept( *visitor );
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					break;
 
@@ -549,5 +547,5 @@
 					output << "(";
 					(*arg++)->accept( *visitor );
-					output << opInfo.symbol;
+					output << opInfo->symbol;
 					(*arg)->accept( *visitor );
 					output << ")";
@@ -581,10 +579,10 @@
 	void CodeGenerator::postvisit( NameExpr * nameExpr ) {
 		extension( nameExpr );
-		OperatorInfo opInfo;
-		if ( operatorLookup( nameExpr->name, opInfo ) ) {
-			if ( opInfo.type == OT_CONSTANT ) {
-				output << opInfo.symbol;
+		const OperatorInfo * opInfo = operatorLookup( nameExpr->name );
+		if ( opInfo ) {
+			if ( opInfo->type == OT_CONSTANT ) {
+				output << opInfo->symbol;
 			} else {
-				output << opInfo.outputName;
+				output << opInfo->outputName;
 			}
 		} else {
@@ -654,7 +652,7 @@
 	void CodeGenerator::postvisit( VariableExpr * variableExpr ) {
 		extension( variableExpr );
-		OperatorInfo opInfo;
-		if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && operatorLookup( variableExpr->get_var()->get_name(), opInfo ) && opInfo.type == OT_CONSTANT ) {
-			output << opInfo.symbol;
+		const OperatorInfo * opInfo;
+		if ( variableExpr->get_var()->get_linkage() == LinkageSpec::Intrinsic && (opInfo = operatorLookup( variableExpr->get_var()->get_name() )) && opInfo->type == OT_CONSTANT ) {
+			output << opInfo->symbol;
 		} else {
 			output << mangleName( variableExpr->get_var() );
@@ -1011,5 +1009,5 @@
 		  case BranchStmt::FallThroughDefault:
 			assertf( ! options.genC, "fallthru should not reach code generation." );
-		  output << "fallthru";
+			output << "fallthru";
 			break;
 		} // switch
@@ -1035,5 +1033,5 @@
 
 		output << ((throwStmt->get_kind() == ThrowStmt::Terminate) ?
-		           "throw" : "throwResume");
+				   "throw" : "throwResume");
 		if (throwStmt->get_expr()) {
 			output << " ";
@@ -1050,5 +1048,5 @@
 
 		output << ((stmt->get_kind() == CatchStmt::Terminate) ?
-		"catch" : "catchResume");
+				   "catch" : "catchResume");
 		output << "( ";
 		stmt->decl->accept( *visitor );
@@ -1187,7 +1185,7 @@
 
 	std::string genName( DeclarationWithType * decl ) {
-		CodeGen::OperatorInfo opInfo;
-		if ( operatorLookup( decl->get_name(), opInfo ) ) {
-			return opInfo.outputName;
+		const OperatorInfo * opInfo = operatorLookup( decl->get_name() );
+		if ( opInfo ) {
+			return opInfo->outputName;
 		} else {
 			return decl->get_name();
