Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision 943bfad2c0b8d6d35a71ff04892a3d14825e9dc8)
+++ src/SynTree/Type.cc	(revision ca69a8af1fd8e4a4f5d7db9cacd2292fe31c3156)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Dec 15 16:52:37 2019
-// Update Count     : 49
+// Last Modified By : Andrew Beach
+// Last Modified On : Wed Jul 14 15:47:00 2021
+// Update Count     : 50
 //
 #include "Type.h"
@@ -178,4 +178,25 @@
 }
 
+VTableType::VTableType( const Type::Qualifiers &tq, Type *base, const std::list< Attribute * > & attributes )
+		: Type( tq, attributes ), base( base ) {
+	assertf( base, "VTableType with a null base created." );
+}
+
+VTableType::VTableType( const VTableType &other )
+		: Type( other ), base( other.base->clone() ) {
+}
+
+VTableType::~VTableType() {
+	delete base;
+}
+
+void VTableType::print( std::ostream &os, Indenter indent ) const {
+	Type::print( os, indent );
+	os << "get virtual-table type of ";
+	if ( base ) {
+		base->print( os, indent );
+	} // if
+}
+
 // Local Variables: //
 // tab-width: 4 //
Index: src/SynTree/Type.h
===================================================================
--- src/SynTree/Type.h	(revision 943bfad2c0b8d6d35a71ff04892a3d14825e9dc8)
+++ src/SynTree/Type.h	(revision ca69a8af1fd8e4a4f5d7db9cacd2292fe31c3156)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Wed Sep  4 09:58:00 2019
-// Update Count     : 170
+// Last Modified On : Wed Jul 14 15:40:00 2021
+// Update Count     : 171
 //
 
@@ -651,4 +651,23 @@
 };
 
+class VTableType : public Type {
+public:
+	Type *base;
+
+	VTableType( const Type::Qualifiers & tq, Type *base,
+		const std::list< Attribute * > & attributes = std::list< Attribute * >() );
+	VTableType( const VTableType & );
+	virtual ~VTableType();
+
+	Type *get_base() { return base; }
+	void set_base( Type *newValue ) { base = newValue; }
+
+	virtual VTableType *clone() const override { return new VTableType( *this ); }
+	virtual void accept( Visitor & v ) override { v.visit( this ); }
+	virtual void accept( Visitor & v ) const override { v.visit( this ); }
+	virtual Type *acceptMutator( Mutator & m ) override { return m.mutate( this ); }
+	virtual void print( std::ostream & os, Indenter indent = {} ) const override;
+};
+
 class AttrType : public Type {
   public:
