https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100463
--- Comment #4 from Martin Sebor <msebor at gcc dot gnu.org> --- So besides the hash_map GTY support being incomplete it also seems like ggc.h support is missing something. The following change to the header lets the whole patch below compile: diff --git a/gcc/ggc.h b/gcc/ggc.h index 65f6cb4d19d..9feeffc0f06 100644 --- a/gcc/ggc.h +++ b/gcc/ggc.h @@ -347,4 +347,9 @@ gt_pch_nx (unsigned int) { } +inline void +gt_pch_nx (long int) +{ +} + #endif So to use a hash_map from HWI to int the following appears necessary. But if I need unsigned HWI I have to repeat the whole exercise yet again. diff --git a/gcc/except.c b/gcc/except.c index a7902bbd555..a47841cf395 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -149,6 +149,21 @@ static GTY(()) int call_site_base; static GTY(()) hash_map<tree_hash, tree> *type_to_runtime_map; +typedef int_hash <HOST_WIDE_INT, 0, HOST_WIDE_INT_MAX> test_int_hash_t; +typedef hash_map<test_int_hash_t, int> test_int_hash_map_t; +static GTY(()) test_int_hash_map_t *test_int_hash_map; + +inline void +gt_ggc_mx (test_int_hash_t *) +{ +} + +inline void +gt_pch_nx (test_int_hash_t *) +{ +} + + static GTY(()) tree setjmp_fn; /* Describe the SjLj_Function_Context structure. */ diff --git a/gcc/ggc.h b/gcc/ggc.h index 65f6cb4d19d..9feeffc0f06 100644 --- a/gcc/ggc.h +++ b/gcc/ggc.h @@ -347,4 +347,9 @@ gt_pch_nx (unsigned int) { } +inline void +gt_pch_nx (long int) +{ +} + #endif diff --git a/gcc/hash-map.h b/gcc/hash-map.h index 0779c930f0a..c07bd04704f 100644 --- a/gcc/hash-map.h +++ b/gcc/hash-map.h @@ -114,6 +114,11 @@ class GTY((user)) hash_map static void pch_nx_helper (unsigned int, gt_pointer_operator, void *) + { + } + + static void + pch_nx_helper (long int, gt_pointer_operator, void *) { }