diff options
Diffstat (limited to 'gcc/ipa-utils.h')
-rw-r--r-- | gcc/ipa-utils.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h index f35ddb5dc54..3c6c93c10a1 100644 --- a/gcc/ipa-utils.h +++ b/gcc/ipa-utils.h @@ -50,12 +50,15 @@ tree get_base_var (tree); struct odr_type_d; typedef odr_type_d *odr_type; void build_type_inheritance_graph (void); +void update_type_inheritance_graph (void); vec <cgraph_node *> possible_polymorphic_call_targets (tree, HOST_WIDE_INT, bool *final = NULL, void **cache_token = NULL); odr_type get_odr_type (tree, bool insert = false); void dump_possible_polymorphic_call_targets (FILE *, tree, HOST_WIDE_INT); +bool possible_polymorphic_call_target_p (tree, HOST_WIDE_INT, + struct cgraph_node *n); /* Return vector containing possible targets of polymorphic call E. If FINALP is non-NULL, store true if the list is complette. @@ -87,6 +90,17 @@ dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e) dump_possible_polymorphic_call_targets (f, e->indirect_info->otr_type, e->indirect_info->otr_token); } + +/* Return true if N can be possibly target of a polymorphic call of + E. */ + +inline bool +possible_polymorphic_call_target_p (struct cgraph_edge *e, + struct cgraph_node *n) +{ + return possible_polymorphic_call_target_p (e->indirect_info->otr_type, + e->indirect_info->otr_token, n); +} #endif /* GCC_IPA_UTILS_H */ |