Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision 994028dc0300ec8f889c6bfd7596198e25e985af)
+++ src/AST/Pass.impl.hpp	(revision 7f3b5ceac9ffdeb064abe4bb8f8ed5c357d1abac)
@@ -617,4 +617,5 @@
 				maybe_accept( node, &FunctionDecl::returns );
 				maybe_accept( node, &FunctionDecl::type );
+				maybe_accept( node, &FunctionDecl::attributes );
 				// First remember that we are now within a function.
 				ValueGuard< bool > oldInFunction( inFunction );
@@ -625,5 +626,4 @@
 				atFunctionTop = true;
 				maybe_accept( node, &FunctionDecl::stmts );
-				maybe_accept( node, &FunctionDecl::attributes );
 			}
 		}
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 994028dc0300ec8f889c6bfd7596198e25e985af)
+++ src/Common/PassVisitor.impl.h	(revision 7f3b5ceac9ffdeb064abe4bb8f8ed5c357d1abac)
@@ -607,4 +607,5 @@
 			indexerAddId( &func );
 			maybeMutate_impl( node->type, *this );
+			maybeMutate_impl( node->attributes, *this );
 			// First remember that we are now within a function.
 			ValueGuard< bool > oldInFunction( inFunction );
@@ -615,5 +616,4 @@
 			atFunctionTop = true;
 			maybeMutate_impl( node->statements, *this );
-			maybeMutate_impl( node->attributes, *this );
 		}
 	}
