aboutsummaryrefslogtreecommitdiff
path: root/gcc/btfout.c
diff options
context:
space:
mode:
authorIndu Bhagat <indu.bhagat@oracle.com>2021-09-29 13:25:39 -0700
committerIndu Bhagat <indu.bhagat@oracle.com>2021-09-29 13:27:19 -0700
commitd6a87d96d7473cbd2404d5dcc7eef36a7f53b2b2 (patch)
tree187a41df87b75408405c2ac6a1afb0f7b47a9d06 /gcc/btfout.c
parentcd5448f6c534c0d386f6b561ab903ffd5d3884b2 (diff)
downloadgcc-d6a87d96d7473cbd2404d5dcc7eef36a7f53b2b2.zip
gcc-d6a87d96d7473cbd2404d5dcc7eef36a7f53b2b2.tar.gz
gcc-d6a87d96d7473cbd2404d5dcc7eef36a7f53b2b2.tar.bz2
debug/102507: ICE in btf_finalize when compiling with -gbtf
Fix the free up of btf_var_ids hash_map in btf_finalize (). gcc/ChangeLog: PR debug/102507 * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. (btf_finalize): Empty the hash_map btf_var_ids.
Diffstat (limited to 'gcc/btfout.c')
-rw-r--r--gcc/btfout.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/btfout.c b/gcc/btfout.c
index cdc6c63..a787815 100644
--- a/gcc/btfout.c
+++ b/gcc/btfout.c
@@ -70,7 +70,7 @@ static char btf_info_section_label[MAX_BTF_LABEL_BYTES];
converted to BTF_KIND_VAR type records. Strictly accounts for the index
from the start of the variable type entries, does not include the number
of types emitted prior to the variable records. */
-static hash_map <ctf_dvdef_ref, unsigned int> *btf_var_ids;
+static GTY (()) hash_map <ctf_dvdef_ref, unsigned> *btf_var_ids;
/* Mapping of type IDs from original CTF ID to BTF ID. Types do not map
1-to-1 from CTF to BTF. To avoid polluting the CTF container when updating
@@ -1119,12 +1119,12 @@ btf_finalize (void)
funcs = NULL;
+ btf_var_ids->empty ();
+ btf_var_ids = NULL;
+
free (btf_id_map);
btf_id_map = NULL;
- ggc_free (btf_var_ids);
- btf_var_ids = NULL;
-
ctf_container_ref tu_ctfc = ctf_get_tu_ctfc ();
ctfc_delete_container (tu_ctfc);
tu_ctfc = NULL;