mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-07 03:23:44 +08:00
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:
parent
b6dd195aac
commit
c304a68e41
@ -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 *);
|
||||
|
@ -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
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user