diff options
Diffstat (limited to 'gcc/libfuncs.h')
-rw-r--r-- | gcc/libfuncs.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/libfuncs.h b/gcc/libfuncs.h index 5cc32b3..ea067bd 100644 --- a/gcc/libfuncs.h +++ b/gcc/libfuncs.h @@ -55,11 +55,19 @@ enum libfunc_index We use the same hashtable for normal optabs and conversion optabs. In the first case mode2 is forced to VOIDmode. */ -struct GTY(()) libfunc_entry { +struct GTY((for_user)) libfunc_entry { int op, mode1, mode2; rtx libfunc; }; +/* Descriptor for libfunc_entry. */ + +struct libfunc_hasher : ggc_hasher<libfunc_entry *> +{ + static hashval_t hash (libfunc_entry *); + static bool equal (libfunc_entry *, libfunc_entry *); +}; + /* Target-dependent globals. */ struct GTY(()) target_libfuncs { /* SYMBOL_REF rtx's for the library functions that are called @@ -67,7 +75,7 @@ struct GTY(()) target_libfuncs { rtx x_libfunc_table[LTI_MAX]; /* Hash table used to convert declarations into nodes. */ - htab_t GTY((param_is (struct libfunc_entry))) x_libfunc_hash; + hash_table<libfunc_hasher> *GTY(()) x_libfunc_hash; }; extern GTY(()) struct target_libfuncs default_target_libfuncs; |