These flags are used to make sure mangling is done correctly. gcc/ChangeLog:
* cgraph.h (struct cgraph_node): Add dispatcher_resolver_function and is_target_clone. --- gcc/cgraph.h | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index d9177364b7a..9561bce2c33 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -896,19 +896,19 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node /* Constructor. */ explicit cgraph_node () : symtab_node (SYMTAB_FUNCTION), callees (NULL), callers (NULL), - indirect_calls (NULL), - next_sibling_clone (NULL), prev_sibling_clone (NULL), clones (NULL), - clone_of (NULL), call_site_hash (NULL), former_clone_of (NULL), - simdclone (NULL), simd_clones (NULL), ipa_transforms_to_apply (vNULL), - inlined_to (NULL), rtl (NULL), - count (profile_count::uninitialized ()), + indirect_calls (NULL), next_sibling_clone (NULL), + prev_sibling_clone (NULL), clones (NULL), clone_of (NULL), + call_site_hash (NULL), former_clone_of (NULL), simdclone (NULL), + simd_clones (NULL), ipa_transforms_to_apply (vNULL), inlined_to (NULL), + rtl (NULL), count (profile_count::uninitialized ()), count_materialization_scale (REG_BR_PROB_BASE), profile_id (0), unit_id (0), tp_first_run (0), thunk (false), - used_as_abstract_origin (false), - lowered (false), process (false), frequency (NODE_FREQUENCY_NORMAL), - only_called_at_startup (false), only_called_at_exit (false), - tm_clone (false), dispatcher_function (false), calls_comdat_local (false), - icf_merged (false), nonfreeing_fn (false), merged_comdat (false), + used_as_abstract_origin (false), lowered (false), process (false), + frequency (NODE_FREQUENCY_NORMAL), only_called_at_startup (false), + only_called_at_exit (false), tm_clone (false), + dispatcher_function (false), dispatcher_resolver_function (false), + is_target_clone (false), calls_comdat_local (false), icf_merged (false), + nonfreeing_fn (false), merged_comdat (false), merged_extern_inline (false), parallelized_function (false), split_part (false), indirect_call_target (false), local (false), versionable (false), can_change_signature (false), @@ -1465,6 +1465,11 @@ struct GTY((tag ("SYMTAB_FUNCTION"))) cgraph_node : public symtab_node unsigned tm_clone : 1; /* True if this decl is a dispatcher for function versions. */ unsigned dispatcher_function : 1; + /* True if this decl is a resolver for function versions. */ + unsigned dispatcher_resolver_function : 1; + /* True this is part of a multiversioned set and the default version + comes from a target_clone attribute. */ + unsigned is_target_clone : 1; /* True if this decl calls a COMDAT-local function. This is set up in compute_fn_summary and inline_call. */ unsigned calls_comdat_local : 1;