Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision 994028dc0300ec8f889c6bfd7596198e25e985af)
+++ src/AST/Pass.impl.hpp	(revision f2ff0a6c85d80b8cad7c70285ea4d2df2de55cf6)
@@ -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 f2ff0a6c85d80b8cad7c70285ea4d2df2de55cf6)
@@ -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 );
 		}
 	}
