Index: src/InitTweak/InitTweak.cc
===================================================================
--- src/InitTweak/InitTweak.cc	(revision 8d7bef249652cc2b9854c7090c758bcd9ad9f613)
+++ src/InitTweak/InitTweak.cc	(revision f229fc21dea2ccacb291a92a65e5b8c8fab587c0)
@@ -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 ) ) {
