Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 34dcc474f4920507b7bdae9742138b4d088dcffc)
+++ src/Common/PassVisitor.impl.h	(revision 09a1ae65b16a0d81b5e42e0db3d06d4ae0941448)
@@ -1171,4 +1171,5 @@
 	indexerScopedAccept( node->result, *this );
 
+	// xxx - not quite sure why this doesn't visit( node->function );
 	for ( auto expr : node->args ) {
 		visitExpression( expr );
Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision 34dcc474f4920507b7bdae9742138b4d088dcffc)
+++ src/InitTweak/InitTweak.cc	(revision 09a1ae65b16a0d81b5e42e0db3d06d4ae0941448)
@@ -5,4 +5,5 @@
 #include <memory>                  // for __shared_ptr
 
+#include "Common/GC.h"             // for new_static_root
 #include "Common/PassVisitor.h"
 #include "Common/SemanticError.h"  // for SemanticError
@@ -523,5 +524,7 @@
 			// This operator could easily exist as a real function, but it's tricky because nothing should resolve to this function.
 			TypeDecl * td = new TypeDecl( "T", noStorageClasses, nullptr, TypeDecl::Dtype, true );
-			assign = new FunctionDecl( "?=?", noStorageClasses, LinkageSpec::Intrinsic, SymTab::genAssignType( new TypeInstType( noQualifiers, td->name, td ) ), nullptr );
+			assign = new_static_root<FunctionDecl>( 
+				"?=?", noStorageClasses, LinkageSpec::Intrinsic, 
+				SymTab::genAssignType( new TypeInstType( noQualifiers, td->name, td ) ), nullptr );
 		}
 		if ( dynamic_cast< ReferenceType * >( dst->result ) ) {
Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision 34dcc474f4920507b7bdae9742138b4d088dcffc)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 09a1ae65b16a0d81b5e42e0db3d06d4ae0941448)
@@ -35,4 +35,5 @@
 #include "ResolveTypeof.h"         // for resolveTypeof
 #include "Resolver.h"              // for resolveStmtExpr
+#include "Common/GC.h"             // for new_static_root
 #include "SymTab/Indexer.h"        // for Indexer
 #include "SymTab/Mangler.h"        // for Mangler
@@ -1084,5 +1085,5 @@
 
 		// find function operators
-		static NameExpr *opExpr = new NameExpr( "?()" );
+		static auto *opExpr = new_static_root<NameExpr>( "?()" );
 		AlternativeFinder funcOpFinder( indexer, env );
 		// it's ok if there aren't any defined function ops
