Index: src/Virtual/ExpandCasts.cc
===================================================================
--- src/Virtual/ExpandCasts.cc	(revision ecfd7589e4796949fcc35b475a024d4acda6e636)
+++ src/Virtual/ExpandCasts.cc	(revision a1b9bc32a15e98b204ca26969764c493704517ea)
@@ -77,5 +77,5 @@
 
 	class VirtualCastCore {
-		Type * pointer_to_pvt(int level_of_indirection) {
+		CastExpr * cast_to_type_id( Expression * expr, int level_of_indirection ) {
 			Type * type = new StructInstType(
 				Type::Qualifiers( Type::Const ), pvt_decl );
@@ -83,5 +83,5 @@
 				type = new PointerType( noQualifiers, type );
 			}
-			return type;
+			return new CastExpr( expr, type );
 		}
 
@@ -253,12 +253,6 @@
 		Expression * result = new CastExpr(
 			new ApplicationExpr( VariableExpr::functionPointer( vcast_decl ), {
-					new CastExpr(
-						new AddressExpr( new VariableExpr( type_id ) ),
-						pointer_to_pvt(1)
-					),
-					new CastExpr(
-						castExpr->get_arg(),
-						pointer_to_pvt(2)
-					)
+				cast_to_type_id( new AddressExpr( new VariableExpr( type_id ) ), 1 ),
+				cast_to_type_id( castExpr->get_arg(), 2 ),
 			} ),
 			castExpr->get_result()->clone()
Index: src/Virtual/Tables.cc
===================================================================
--- src/Virtual/Tables.cc	(revision ecfd7589e4796949fcc35b475a024d4acda6e636)
+++ src/Virtual/Tables.cc	(revision a1b9bc32a15e98b204ca26969764c493704517ea)
@@ -172,17 +172,7 @@
 
 Attribute * linkonce( const std::string & subsection ) {
-	const std::string section = "\".gnu.linkonce." + subsection + "\"";
-	// Adjust for terminator and quotes.
-	size_t str_size = section.size() + 1 - 2;
+	const std::string section = ".gnu.linkonce." + subsection;
 	return new Attribute( "section", {
-		new ConstantExpr( Constant(
-			new ArrayType(
-				noQualifiers,
-				new BasicType( noQualifiers, BasicType::Char ),
-				new ConstantExpr( Constant::from_ulong( str_size ) ),
-				false, false ),
-			section,
-			std::nullopt
-		) ),
+		new ConstantExpr( Constant::from_string( section ) ),
 	} );
 }
