Index: src/GenPoly/Box.cc
===================================================================
--- src/GenPoly/Box.cc	(revision 058f549aa36a522d2e89bddf81f736ef628c045e)
+++ src/GenPoly/Box.cc	(revision cccc5343be3778f0211640c87d33b28512f4fcce)
@@ -896,5 +896,4 @@
 				addAdapterParams( adapteeApp, arg, param, adapterType->get_parameters().end(), realParam, tyVars );
 				bodyStmt = new ExprStmt( noLabels, adapteeApp );
-//			} else if ( isPolyType( adaptee->get_returnVals().front()->get_type(), tyVars ) ) {
 			} else if ( isDynType( adaptee->get_returnVals().front()->get_type(), tyVars ) ) {
 				// return type T
@@ -1550,13 +1549,11 @@
 					// (alloca was previously used, but can't be safely used in loops)
 					Type *declType = objectDecl->get_type();
-					std::string bufName = bufNamer.newName();
-					ObjectDecl *newBuf = new ObjectDecl( bufName, Type::StorageClasses(), LinkageSpec::C, 0,
+					ObjectDecl *newBuf = new ObjectDecl( bufNamer.newName(), Type::StorageClasses(), LinkageSpec::C, 0,
 						new ArrayType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Kind::Char), new NameExpr( sizeofName( mangleType(declType) ) ),
-						true, false, std::list<Attribute*>{ new Attribute( std::string{"aligned"}, std::list<Expression*>{ new ConstantExpr( Constant::from_int(8) ) } ) } ), 0 );
+						true, false, std::list<Attribute*>{ new Attribute( "aligned", std::list<Expression*>{ new ConstantExpr( Constant::from_int(8) ) } ) } ), 0 );
 					stmtsToAdd.push_back( new DeclStmt( noLabels, newBuf ) );
 
 					delete objectDecl->get_init();
-
-					objectDecl->set_init( new SingleInit( new NameExpr( bufName ) ) );
+					objectDecl->set_init( new SingleInit( new VariableExpr( newBuf ) ) );
 				}
 			}
Index: src/GenPoly/GenPoly.cc
===================================================================
--- src/GenPoly/GenPoly.cc	(revision 058f549aa36a522d2e89bddf81f736ef628c045e)
+++ src/GenPoly/GenPoly.cc	(revision cccc5343be3778f0211640c87d33b28512f4fcce)
@@ -336,10 +336,10 @@
 				assertf(bparam, "Aggregate parameters should be type expressions");
 
-				// xxx - might need to let VoidType be a wildcard here too; could have some voids 
+				// xxx - might need to let VoidType be a wildcard here too; could have some voids
 				// stuffed in for dtype-statics.
 				// if ( is<VoidType>( aparam->get_type() ) || is<VoidType>( bparam->get_type() ) ) continue;
 				if ( ! typesPolyCompatible( aparam->get_type(), bparam->get_type() ) ) return false;
 			}
-			
+
 			return true;
 		}
@@ -350,9 +350,9 @@
 		// polymorphic types always match
 		if ( aid == type_index{typeid(TypeInstType)} ) return true;
-		
+
 		type_index bid{ typeid(*b) };
 		// polymorphic types always match
 		if ( bid == type_index{typeid(TypeInstType)} ) return true;
-		
+
 		// can't match otherwise if different types
 		if ( aid != bid ) return false;
@@ -377,5 +377,5 @@
 				ConstantExpr *ad = dynamic_cast<ConstantExpr*>( aa->get_dimension() );
 				ConstantExpr *bd = dynamic_cast<ConstantExpr*>( ba->get_dimension() );
-				if ( ad && bd 
+				if ( ad && bd
 						&& ad->get_constant()->get_value() != bd->get_constant()->get_value() )
 					return false;
Index: src/Parser/ExpressionNode.cc
===================================================================
--- src/Parser/ExpressionNode.cc	(revision 058f549aa36a522d2e89bddf81f736ef628c045e)
+++ src/Parser/ExpressionNode.cc	(revision cccc5343be3778f0211640c87d33b28512f4fcce)
@@ -314,5 +314,5 @@
 Expression * build_unary_ptr( OperKinds op, ExpressionNode * expr_node ) {
 	std::list< Expression * > args;
-	args.push_back(  maybeMoveBuild< Expression >(expr_node) ); // xxx
+	args.push_back(  maybeMoveBuild< Expression >(expr_node) ); // xxx -- this is exactly the same as the val case now, refactor this code.
 	return new UntypedExpr( new NameExpr( OperName[ (int)op ] ), args );
 } // build_unary_ptr
