Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 6242335009c5d2ebee1bb50d1d228f5aacb0e5bd)
+++ src/SynTree/Expression.cc	(revision 303406a0eb32fee3be6642e3eb624c6b3209801a)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Mar 30 16:41:13 2017
-// Update Count     : 52
+// Last Modified On : Tue Jul 25 14:15:47 2017
+// Update Count     : 54
 //
 
@@ -298,4 +298,29 @@
 	if ( result->isVoid() ) {
 		os << "nothing";
+	} else {
+		result->print( os, indent+2 );
+	} // if
+	os << std::endl;
+	Expression::print( os, indent );
+}
+
+VirtualCastExpr::VirtualCastExpr( Expression *arg_, Type *toType ) : Expression(), arg(arg_) {
+	set_result(toType);
+}
+
+VirtualCastExpr::VirtualCastExpr( const VirtualCastExpr &other ) : Expression( other ), arg( maybeClone( other.arg ) ) {
+}
+
+VirtualCastExpr::~VirtualCastExpr() {
+	delete arg;
+}
+
+void VirtualCastExpr::print( std::ostream &os, int indent ) const {
+	os << "Virtual Cast of:" << std::endl << std::string( indent+2, ' ' );
+	arg->print(os, indent+2);
+	os << std::endl << std::string( indent, ' ' ) << "to:" << std::endl;
+	os << std::string( indent+2, ' ' );
+	if ( ! result ) {
+		os << "unknown";
 	} else {
 		result->print( os, indent+2 );
@@ -503,5 +528,5 @@
 }
 
-AsmExpr::AsmExpr( const AsmExpr & other ) : inout( maybeClone( other.inout ) ), constraint( maybeClone( other.constraint ) ), operand( maybeClone( other.operand ) ) {}
+AsmExpr::AsmExpr( const AsmExpr & other ) : Expression( other ), inout( maybeClone( other.inout ) ), constraint( maybeClone( other.constraint ) ), operand( maybeClone( other.operand ) ) {}
 
 
