Free datastructures pointing to CFG after parsing

* cp-tree.h (cp_tree_c_finish_parsing): Declare.
	* decl2.c (c_parse_final_cleanups): Call cp_tree_c_finish_parsing.
	* tree.c (cp_tree_c_finish_parsing): New function.
This commit is contained in:
Jan Hubicka 2021-01-02 16:03:41 +01:00
parent b6dd195aac
commit c304a68e41
3 changed files with 12 additions and 0 deletions

View File

@ -8238,6 +8238,8 @@ struct uid_sensitive_constexpr_evaluation_checker
bool evaluation_restricted_p () const;
};
void cp_tree_c_finish_parsing ();
/* In cp-ubsan.c */
extern void cp_ubsan_maybe_instrument_member_call (tree);
extern void cp_ubsan_instrument_member_accesses (tree *);

View File

@ -5257,6 +5257,7 @@ c_parse_final_cleanups (void)
perform_deferred_noexcept_checks ();
fini_constexpr ();
cp_tree_c_finish_parsing ();
clear_consteval_vfns (consteval_vtables);
/* The entire file is now complete. If requested, dump everything

View File

@ -5926,6 +5926,15 @@ maybe_warn_zero_as_null_pointer_constant (tree expr, location_t loc)
return false;
}
/* Release memory we no longer need after parsing. */
void
cp_tree_c_finish_parsing ()
{
if (previous_class_level)
invalidate_class_lookup_cache ();
deleted_copy_types = NULL;
}
#if defined ENABLE_TREE_CHECKING && (GCC_VERSION >= 2007)
/* Complain that some language-specific thing hanging off a tree
node has been accessed improperly. */