Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 01b8ccf1f41720d01299184f779aec0c33ce15fb)
+++ src/Common/PassVisitor.h	(revision cc32d8399627ee613fb6842043aca12a1038ffcb)
@@ -71,4 +71,5 @@
 	virtual void visit( ExprStmt * exprStmt ) override final;
 	virtual void visit( AsmStmt * asmStmt ) override final;
+	virtual void visit( DirectiveStmt * dirStmt ) override final;
 	virtual void visit( IfStmt * ifStmt ) override final;
 	virtual void visit( WhileStmt * whileStmt ) override final;
@@ -168,4 +169,5 @@
 	virtual Statement * mutate( ExprStmt * exprStmt ) override final;
 	virtual Statement * mutate( AsmStmt * asmStmt ) override final;
+	virtual Statement * mutate( DirectiveStmt * dirStmt ) override final;
 	virtual Statement * mutate( IfStmt * ifStmt ) override final;
 	virtual Statement * mutate( WhileStmt * whileStmt ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 01b8ccf1f41720d01299184f779aec0c33ce15fb)
+++ src/Common/PassVisitor.impl.h	(revision cc32d8399627ee613fb6842043aca12a1038ffcb)
@@ -777,4 +777,20 @@
 
 //--------------------------------------------------------------------------
+// AsmStmt
+template< typename pass_type >
+void PassVisitor< pass_type >::visit( DirectiveStmt * node ) {
+	VISIT_START( node )
+
+	VISIT_END( node );
+}
+
+template< typename pass_type >
+Statement * PassVisitor< pass_type >::mutate( DirectiveStmt * node ) {
+	MUTATE_START( node );
+
+	MUTATE_END( Statement, node );
+}
+
+//--------------------------------------------------------------------------
 // IfStmt
 template< typename pass_type >
