Index: src/SymTab/FixFunction.cc
===================================================================
--- src/SymTab/FixFunction.cc	(revision 11ab8ea85897fbd4bb1ca5fccc0c4aeda2c51de6)
+++ src/SymTab/FixFunction.cc	(revision 7f623d6fc2334cda8b26a77d059a48637fb5a398)
@@ -24,6 +24,8 @@
 
 	DeclarationWithType * FixFunction::mutate(FunctionDecl *functionDecl) {
-		ObjectDecl *pointer = new ObjectDecl( functionDecl->get_name(), functionDecl->get_storageClasses(), functionDecl->get_linkage(), 0, new PointerType( Type::Qualifiers(), functionDecl->get_type()->clone() ), 0, functionDecl->get_attributes() );
+		ObjectDecl *pointer = new ObjectDecl( functionDecl->get_name(), functionDecl->get_storageClasses(), functionDecl->get_linkage(), 0, new PointerType( Type::Qualifiers(), functionDecl->get_type() ), 0, functionDecl->get_attributes() );
 		functionDecl->get_attributes().clear();
+		// can't delete function type because it may contain assertions, but can't transfer ownership without a clone since set_type checks for nullptr
+		functionDecl->set_type( functionDecl->get_type()->clone() );
 		delete functionDecl;
 		return pointer;
