Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 65cec251f512ad5b21b186c03cb149f72d8fde51)
+++ src/Common/PassVisitor.h	(revision 6b9b04774733cb2fbec40e4c126e7097d99a9290)
@@ -113,4 +113,5 @@
 	virtual void visit( PointerType *pointerType ) override final;
 	virtual void visit( ArrayType *arrayType ) override final;
+	virtual void visit( ReferenceType *referenceType ) override final;
 	virtual void visit( FunctionType *functionType ) override final;
 	virtual void visit( StructInstType *aggregateUseType ) override final;
@@ -198,4 +199,5 @@
 	virtual Type* mutate( PointerType *pointerType ) override final;
 	virtual Type* mutate( ArrayType *arrayType ) override final;
+	virtual Type* mutate( ReferenceType *referenceType ) override final;
 	virtual Type* mutate( FunctionType *functionType ) override final;
 	virtual Type* mutate( StructInstType *aggregateUseType ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 65cec251f512ad5b21b186c03cb149f72d8fde51)
+++ src/Common/PassVisitor.impl.h	(revision 6b9b04774733cb2fbec40e4c126e7097d99a9290)
@@ -786,4 +786,9 @@
 
 template< typename pass_type >
+void PassVisitor< pass_type >::visit( ReferenceType * node ) {
+	VISIT_BODY( node );
+}
+
+template< typename pass_type >
 void PassVisitor< pass_type >::visit( FunctionType * node ) {
 	VISIT_BODY( node );
@@ -1118,4 +1123,9 @@
 
 template< typename pass_type >
+Type * PassVisitor< pass_type >::mutate( ReferenceType * node ) {
+	MUTATE_BODY( Type, node );
+}
+
+template< typename pass_type >
 Type * PassVisitor< pass_type >::mutate( FunctionType * node ) {
 	MUTATE_BODY( Type, node );
