diff options
Diffstat (limited to 'gcc/dwarf2asm.c')
-rw-r--r-- | gcc/dwarf2asm.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c index 7a067101a77..c6667077a05 100644 --- a/gcc/dwarf2asm.c +++ b/gcc/dwarf2asm.c @@ -694,6 +694,18 @@ static int dw2_output_indirect_constant_1 (splay_tree_node, void *); static GTY((param1_is (char *), param2_is (tree))) splay_tree indirect_pool; +static void * +ggc_alloc_ip_splay_tree (int sz, void *nl) +{ + return ggc_splay_alloc_tree (gt_e_SP9tree_node12splay_tree_s, sz, nl); +} + +static void * +ggc_alloc_ip_splay_node (int sz, void *nl) +{ + return ggc_splay_alloc_node (gt_e_SP9tree_node17splay_tree_node_s, sz, nl); +} + static GTY(()) int dw2_const_labelno; #if defined(HAVE_GAS_HIDDEN) && defined(SUPPORTS_ONE_ONLY) @@ -716,7 +728,9 @@ dw2_force_const_mem (rtx x, bool public) tree decl; if (! indirect_pool) - indirect_pool = splay_tree_new_ggc (splay_tree_compare_pointers); + indirect_pool = splay_tree_new_ggc (splay_tree_compare_pointers, + ggc_alloc_ip_splay_tree, + ggc_alloc_ip_splay_node); gcc_assert (GET_CODE (x) == SYMBOL_REF); |