[{"id":3678860,"web_url":"http://patchwork.ozlabs.org/comment/3678860/","msgid":"<CALvbMcAOqU1z3zw3GnwN98HspWc7PirXX7YprZr-k5V_1E+DMw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-17T18:52:10","subject":"Re: [PATCH 02/30] Change `struct cgraph_edge` to `class cgraph_edge`\n to align tags","submitter":{"id":91428,"url":"http://patchwork.ozlabs.org/api/people/91428/","name":"Andrew Pinski","email":"andrew.pinski@oss.qualcomm.com"},"content":"On Fri, Apr 17, 2026 at 10:30 AM Torbjörn SVENSSON\n<torbjorn.svensson@foss.st.com> wrote:\n>\n> Building GCC with clang gives warnings like:\n> warning: struct 'cgraph_edge' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]\n\nThe warning is bogus and really means the Microsoft C++ ABI does not\nsupport C++.\nThat being said, maybe it is better to remove the tag (struct/class)\nat the location of use instead? Like we have done for other cases\nbefore hand.\n\nThanks,\nAndrew\n\n>\n> gcc/ChangeLog:\n>\n>         * auto-profile.cc: Change `struct cgraph_edge` to `class\n>         cgraph_edge`.\n>         * auto-profile.h: Likewise.\n>         * cgraph.cc: Likewise.\n>         * cgraph.h: Likewise.\n>         * coretypes.h: Likewise.\n>         * except.cc\n>         * gimple-iterator.cc\n>         * ipa-comdats.cc:\n>         * ipa-cp.cc: Likewise.\n>         * ipa-devirt.cc: Likewise.\n>         * ipa-fnsummary.cc: Likewise.\n>         * ipa-fnsummary.h: Likewise.\n>         * ipa-icf.cc: Likewise.\n>         * ipa-inline-analysis.cc: Likewise.\n>         * ipa-inline-transform.cc: Likewise.\n>         * ipa-inline.cc: Likewise.\n>         * ipa-inline.h: Likewise.\n>         * ipa-locality-cloning.cc: Likewise.\n>         * ipa-modref.cc: Likewise.\n>         * ipa-profile.cc: Likewise.\n>         * ipa-prop.cc: Likewise.\n>         * ipa-prop.h: Likewise.\n>         * ipa-pure-const.cc: Likewise.\n>         * ipa-reference.cc: Likewise.\n>         * ipa-sra.cc: Likewise.\n>         * ipa-utils.cc: Likewise.\n>         * ipa-utils.h: Likewise.\n>         * ipa-visibility.cc: Likewise.\n>         * ipa.cc: Likewise.\n>         * lto-cgraph.cc: Likewise.\n>         * lto-streamer-in.cc: Likewise.\n>         * passes.cc: Likewise.\n>         * predict.cc: Likewise.\n>         * trans-mem.cc: Likewise.\n>         * tree-cfgcleanup.cc: Likewise.\n>         * tree-inline.cc: Likewise.\n>         * tree-inline.h: Likewise.\n>\n> gcc/lto/ChangeLog:\n>\n>         * lto-partition.cc: Change `struct cgraph_edge` to `class\n>         cgraph_edge`.\n>         * lto-symtab.cc: Likewise.\n>\n> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>\n> ---\n>  gcc/auto-profile.cc         |  6 +--\n>  gcc/auto-profile.h          |  2 +-\n>  gcc/cgraph.cc               |  2 +-\n>  gcc/cgraph.h                |  8 ++--\n>  gcc/coretypes.h             |  2 +-\n>  gcc/except.cc               |  2 +-\n>  gcc/gimple-iterator.cc      |  2 +-\n>  gcc/ipa-comdats.cc          |  4 +-\n>  gcc/ipa-cp.cc               | 54 ++++++++++++------------\n>  gcc/ipa-devirt.cc           |  2 +-\n>  gcc/ipa-fnsummary.cc        | 50 +++++++++++-----------\n>  gcc/ipa-fnsummary.h         |  8 ++--\n>  gcc/ipa-icf.cc              |  4 +-\n>  gcc/ipa-inline-analysis.cc  | 22 +++++-----\n>  gcc/ipa-inline-transform.cc | 14 +++----\n>  gcc/ipa-inline.cc           | 82 ++++++++++++++++++-------------------\n>  gcc/ipa-inline.h            | 24 +++++------\n>  gcc/ipa-locality-cloning.cc | 12 +++---\n>  gcc/ipa-modref.cc           |  2 +-\n>  gcc/ipa-profile.cc          | 10 ++---\n>  gcc/ipa-prop.cc             | 66 ++++++++++++++---------------\n>  gcc/ipa-prop.h              | 12 +++---\n>  gcc/ipa-pure-const.cc       | 14 +++----\n>  gcc/ipa-reference.cc        |  4 +-\n>  gcc/ipa-sra.cc              |  2 +-\n>  gcc/ipa-utils.cc            | 18 ++++----\n>  gcc/ipa-utils.h             | 10 ++---\n>  gcc/ipa-visibility.cc       |  2 +-\n>  gcc/ipa.cc                  |  8 ++--\n>  gcc/lto-cgraph.cc           | 22 +++++-----\n>  gcc/lto-streamer-in.cc      |  2 +-\n>  gcc/lto/lto-partition.cc    |  6 +--\n>  gcc/lto/lto-symtab.cc       |  2 +-\n>  gcc/passes.cc               |  2 +-\n>  gcc/predict.cc              |  6 +--\n>  gcc/trans-mem.cc            |  8 ++--\n>  gcc/tree-cfgcleanup.cc      |  2 +-\n>  gcc/tree-inline.cc          | 14 +++----\n>  gcc/tree-inline.h           |  2 +-\n>  39 files changed, 257 insertions(+), 257 deletions(-)\n>\n> diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc\n> index 34f863a7731..43eaf5f5deb 100644\n> --- a/gcc/auto-profile.cc\n> +++ b/gcc/auto-profile.cc\n> @@ -681,7 +681,7 @@ public:\n>                        cgraph_node *node = NULL) const;\n>\n>    /* Find total count of the callee of EDGE.  */\n> -  gcov_type get_callsite_total_count (struct cgraph_edge *edge) const;\n> +  gcov_type get_callsite_total_count (class cgraph_edge *edge) const;\n>\n>    /* Update value profile INFO for STMT within NODE from the inlined indirect\n>       callsite.  Return true if INFO is updated.  */\n> @@ -2966,7 +2966,7 @@ autofdo_source_profile::remove_icall_target (cgraph_edge *e)\n>\n>  gcov_type\n>  autofdo_source_profile::get_callsite_total_count (\n> -    struct cgraph_edge *edge) const\n> +    class cgraph_edge *edge) const\n>  {\n>    inline_stack stack;\n>    stack.safe_push ({edge->callee->decl, 0, UNKNOWN_LOCATION});\n> @@ -4715,7 +4715,7 @@ end_auto_profile (void)\n>  /* Returns TRUE if EDGE is hot enough to be inlined early.  */\n>\n>  bool\n> -afdo_callsite_hot_enough_for_early_inline (struct cgraph_edge *edge)\n> +afdo_callsite_hot_enough_for_early_inline (class cgraph_edge *edge)\n>  {\n>    gcov_type count\n>        = autofdo::afdo_source_profile->get_callsite_total_count (edge);\n> diff --git a/gcc/auto-profile.h b/gcc/auto-profile.h\n> index 2685a1453c5..9d5f9eff8d2 100644\n> --- a/gcc/auto-profile.h\n> +++ b/gcc/auto-profile.h\n> @@ -28,7 +28,7 @@ extern void read_autofdo_file (void);\n>  extern void end_auto_profile (void);\n>\n>  /* Returns TRUE if EDGE is hot enough to be inlined early.  */\n> -extern bool afdo_callsite_hot_enough_for_early_inline (struct cgraph_edge *);\n> +extern bool afdo_callsite_hot_enough_for_early_inline (class cgraph_edge *);\n>\n>  /* Try to turn indirect calls into speculative calls for early inlining.  */\n>  extern bool afdo_vpt_for_early_inline (cgraph_node *node);\n> diff --git a/gcc/cgraph.cc b/gcc/cgraph.cc\n> index 90635fb5a89..06ef6f7d252 100644\n> --- a/gcc/cgraph.cc\n> +++ b/gcc/cgraph.cc\n> @@ -3807,7 +3807,7 @@ cgraph_edge::verify_corresponds_to_fndecl (tree decl)\n>  static bool\n>  verify_speculative_call (struct cgraph_node *node, gimple *stmt,\n>                          unsigned int lto_stmt_uid,\n> -                        struct cgraph_edge *indirect)\n> +                        class cgraph_edge *indirect)\n>  {\n>    if (indirect == NULL)\n>      {\n> diff --git a/gcc/cgraph.h b/gcc/cgraph.h\n> index 39209b53957..44b8a109c07 100644\n> --- a/gcc/cgraph.h\n> +++ b/gcc/cgraph.h\n> @@ -905,7 +905,7 @@ enum cgraph_inline_failed_type_t\n>    CIF_FINAL_ERROR\n>  };\n>\n> -struct cgraph_edge;\n> +class cgraph_edge;\n>\n>  struct cgraph_edge_hasher : ggc_ptr_hash<cgraph_edge>\n>  {\n> @@ -2550,7 +2550,7 @@ class GTY((tag (\"SYMTAB\"))) symbol_table\n>  public:\n>    friend struct symtab_node;\n>    friend struct cgraph_node;\n> -  friend struct cgraph_edge;\n> +  friend class cgraph_edge;\n>\n>    symbol_table ():\n>    cgraph_count (0), cgraph_max_uid (1), cgraph_max_summary_id (0),\n> @@ -2963,8 +2963,8 @@ bool ipa_discover_variable_flags (void);\n>  tree ctor_for_folding (tree);\n>\n>  /* In ipa-inline-analysis.cc  */\n> -void initialize_inline_failed (struct cgraph_edge *);\n> -bool speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining);\n> +void initialize_inline_failed (class cgraph_edge *);\n> +bool speculation_useful_p (class cgraph_edge *e, bool anticipate_inlining);\n>\n>  /* Return true when the symbol is real symbol, i.e. it is not inline clone\n>     or abstract function kept for debug info purposes only.  */\n> diff --git a/gcc/coretypes.h b/gcc/coretypes.h\n> index 465bead6863..ae506319dff 100644\n> --- a/gcc/coretypes.h\n> +++ b/gcc/coretypes.h\n> @@ -155,7 +155,7 @@ struct toplevel_node;\n>    struct symtab_node;\n>      struct cgraph_node;\n>      struct varpool_node;\n> -struct cgraph_edge;\n> +class cgraph_edge;\n>\n>  union section;\n>  typedef union section section;\n> diff --git a/gcc/except.cc b/gcc/except.cc\n> index 98876833ee1..2adcf18f579 100644\n> --- a/gcc/except.cc\n> +++ b/gcc/except.cc\n> @@ -2025,7 +2025,7 @@ set_nothrow_function_flags (void)\n>            >= AVAIL_AVAILABLE))\n>      {\n>        struct cgraph_node *node = cgraph_node::get (current_function_decl);\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        for (e = node->callers; e; e = e->next_caller)\n>          e->can_throw_external = false;\n>        node->set_nothrow_flag (true);\n> diff --git a/gcc/gimple-iterator.cc b/gcc/gimple-iterator.cc\n> index 2b6133ec8c0..abbde3cf5eb 100644\n> --- a/gcc/gimple-iterator.cc\n> +++ b/gcc/gimple-iterator.cc\n> @@ -89,7 +89,7 @@ update_call_edge_frequencies (gimple_seq_node first, basic_block bb)\n>    for (n = first; n ; n = n->next)\n>      if (is_gimple_call (n))\n>        {\n> -       struct cgraph_edge *e;\n> +       class cgraph_edge *e;\n>\n>         /* These function calls are expensive enough that we want\n>            to avoid calling them if we never see any calls.  */\n> diff --git a/gcc/ipa-comdats.cc b/gcc/ipa-comdats.cc\n> index b89eb596ef3..ae47d4ec3dc 100644\n> --- a/gcc/ipa-comdats.cc\n> +++ b/gcc/ipa-comdats.cc\n> @@ -120,7 +120,7 @@ propagate_comdat_group (struct symtab_node *symbol,\n>    cgraph_node *cnode = dyn_cast <cgraph_node *> (symbol);\n>\n>    if (cnode)\n> -    for (struct cgraph_edge * edge = cnode->callers;\n> +    for (class cgraph_edge * edge = cnode->callers;\n>          edge && newgroup != error_mark_node; edge = edge->next_caller)\n>        {\n>         struct symtab_node *symbol2 = edge->caller;\n> @@ -180,7 +180,7 @@ enqueue_references (symtab_node **first,\n>\n>    if (cgraph_node *cnode = dyn_cast <cgraph_node *> (symbol))\n>      {\n> -      struct cgraph_edge *edge;\n> +      class cgraph_edge *edge;\n>\n>        for (edge = cnode->callees; edge; edge = edge->next_callee)\n>         if (!edge->inline_failed)\n> diff --git a/gcc/ipa-cp.cc b/gcc/ipa-cp.cc\n> index e96b1dc8391..4987592ace5 100644\n> --- a/gcc/ipa-cp.cc\n> +++ b/gcc/ipa-cp.cc\n> @@ -580,7 +580,7 @@ static bool\n>  gather_caller_stats (struct cgraph_node *node, void *data)\n>  {\n>    struct caller_statistics *stats = (struct caller_statistics *) data;\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>\n>    for (cs = node->callers; cs; cs = cs->next_caller)\n>      if (!cs->caller->thunk)\n> @@ -1425,7 +1425,7 @@ static void\n>  initialize_node_lattices (struct cgraph_node *node)\n>  {\n>    ipa_node_params *info = ipa_node_params_sum->get (node);\n> -  struct cgraph_edge *ie;\n> +  class cgraph_edge *ie;\n>    bool disable = false, variable = false;\n>    int i;\n>\n> @@ -2375,7 +2375,7 @@ propagate_vals_across_pass_through (cgraph_edge *cs, ipa_jump_func *jfunc,\n>     is the index of the source parameter.  */\n>\n>  static bool\n> -propagate_vals_across_ancestor (struct cgraph_edge *cs,\n> +propagate_vals_across_ancestor (class cgraph_edge *cs,\n>                                 struct ipa_jump_func *jfunc,\n>                                 ipcp_lattice<tree> *src_lat,\n>                                 ipcp_lattice<tree> *dest_lat, int src_idx,\n> @@ -2405,7 +2405,7 @@ propagate_vals_across_ancestor (struct cgraph_edge *cs,\n>     parameter to which the result is passed.  */\n>\n>  static bool\n> -propagate_scalar_across_jump_function (struct cgraph_edge *cs,\n> +propagate_scalar_across_jump_function (class cgraph_edge *cs,\n>                                        struct ipa_jump_func *jfunc,\n>                                        ipcp_lattice<tree> *dest_lat,\n>                                        tree param_type)\n> @@ -2814,7 +2814,7 @@ set_chain_of_aglats_contains_variable (struct ipcp_agg_lattice *aglat)\n>     in any way.  */\n>\n>  static bool\n> -merge_aggregate_lattices (struct cgraph_edge *cs,\n> +merge_aggregate_lattices (class cgraph_edge *cs,\n>                           class ipcp_param_lattices *dest_plats,\n>                           class ipcp_param_lattices *src_plats,\n>                           int src_idx, HOST_WIDE_INT offset_delta)\n> @@ -2886,7 +2886,7 @@ agg_pass_through_permissible_p (class ipcp_param_lattices *src_plats,\n>     way.  */\n>\n>  static bool\n> -propagate_aggregate_lattice (struct cgraph_edge *cs,\n> +propagate_aggregate_lattice (class cgraph_edge *cs,\n>                              struct ipa_agg_jf_item *item,\n>                              struct ipcp_agg_lattice *aglat)\n>  {\n> @@ -2964,7 +2964,7 @@ propagate_aggregate_lattice (struct cgraph_edge *cs,\n>     edge CS and put the values into DEST_LAT.  */\n>\n>  static bool\n> -propagate_aggs_across_jump_function (struct cgraph_edge *cs,\n> +propagate_aggs_across_jump_function (class cgraph_edge *cs,\n>                                      struct ipa_jump_func *jfunc,\n>                                      class ipcp_param_lattices *dest_plats)\n>  {\n> @@ -3068,7 +3068,7 @@ call_passes_through_thunk (cgraph_edge *cs)\n>     caller.  */\n>\n>  static bool\n> -propagate_constants_across_call (struct cgraph_edge *cs)\n> +propagate_constants_across_call (class cgraph_edge *cs)\n>  {\n>    class ipa_node_params *callee_info;\n>    enum availability availability;\n> @@ -3152,7 +3152,7 @@ propagate_constants_across_call (struct cgraph_edge *cs)\n>     KNOWN_AGGS is ignored.  */\n>\n>  static tree\n> -ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,\n> +ipa_get_indirect_edge_target_1 (class cgraph_edge *ie,\n>                                 const vec<tree> &known_csts,\n>                                 const vec<ipa_polymorphic_call_context> &known_contexts,\n>                                 const ipa_argagg_value_list &avs,\n> @@ -3320,7 +3320,7 @@ ipa_get_indirect_edge_target_1 (struct cgraph_edge *ie,\n>     whether the discovered target is only speculative guess.  */\n>\n>  tree\n> -ipa_get_indirect_edge_target (struct cgraph_edge *ie,\n> +ipa_get_indirect_edge_target (class cgraph_edge *ie,\n>                               ipa_call_arg_values *avals,\n>                               bool *speculative)\n>  {\n> @@ -3340,7 +3340,7 @@ static sreal\n>  devirtualization_time_bonus (struct cgraph_node *node,\n>                              ipa_auto_call_arg_values *avals)\n>  {\n> -  struct cgraph_edge *ie;\n> +  class cgraph_edge *ie;\n>    sreal res = 0;\n>\n>    for (ie = node->indirect_calls; ie; ie = ie->next_callee)\n> @@ -3951,7 +3951,7 @@ propagate_constants_topo (class ipa_topo_info *topo)\n>        v = pop_node_from_stack (topo);\n>        while (v)\n>         {\n> -         struct cgraph_edge *cs;\n> +         class cgraph_edge *cs;\n>           class ipa_node_params *info = NULL;\n>           bool self_scc = true;\n>\n> @@ -3987,7 +3987,7 @@ propagate_constants_topo (class ipa_topo_info *topo)\n>             && opt_for_fn (v->decl, flag_ipa_cp)\n>             && opt_for_fn (v->decl, optimize))\n>           {\n> -           struct cgraph_edge *cs;\n> +           class cgraph_edge *cs;\n>\n>             estimate_local_effects (v);\n>             add_all_node_vals_to_toposort (v, topo);\n> @@ -4134,7 +4134,7 @@ ipcp_discover_new_direct_edges (struct cgraph_node *node,\n>                                 known_contexts,\n>                                 vec<ipa_argagg_value, va_gc> *aggvals)\n>  {\n> -  struct cgraph_edge *ie, *next_ie;\n> +  class cgraph_edge *ie, *next_ie;\n>    bool found = false;\n>\n>    for (ie = node->indirect_calls; ie; ie = next_ie)\n> @@ -4155,7 +4155,7 @@ ipcp_discover_new_direct_edges (struct cgraph_node *node,\n>           bool agg_contents = sii && sii->agg_contents;\n>           bool polymorphic = !!pii;\n>           int param_index = ie->indirect_info->param_index;\n> -         struct cgraph_edge *cs = ipa_make_edge_direct_to_target (ie, target,\n> +         class cgraph_edge *cs = ipa_make_edge_direct_to_target (ie, target,\n>                                                                    speculative);\n>           found = true;\n>\n> @@ -4353,8 +4353,8 @@ cgraph_edge_brings_value_p (cgraph_edge *cs,\n>\n>  /* Get the next clone in the linked list of clones of an edge.  */\n>\n> -static inline struct cgraph_edge *\n> -get_next_cgraph_edge_clone (struct cgraph_edge *cs)\n> +static inline class cgraph_edge *\n> +get_next_cgraph_edge_clone (class cgraph_edge *cs)\n>  {\n>    edge_clone_summary *s = edge_clone_summaries->get (cs);\n>    return s != NULL ? s->next_clone : NULL;\n> @@ -4385,7 +4385,7 @@ get_info_about_necessary_edges (ipcp_value<valtype> *val, cgraph_node *dest,\n>\n>    for (src = val->sources; src; src = src->next)\n>      {\n> -      struct cgraph_edge *cs = src->cs;\n> +      class cgraph_edge *cs = src->cs;\n>        while (cs)\n>         {\n>           if (cgraph_edge_brings_value_p (cs, src, dest, val))\n> @@ -4463,7 +4463,7 @@ gather_edges_for_value (ipcp_value<valtype> *val, cgraph_node *dest,\n>\n>    for (src = val->sources; src; src = src->next)\n>      {\n> -      struct cgraph_edge *cs = src->cs;\n> +      class cgraph_edge *cs = src->cs;\n>        while (cs)\n>         {\n>           if (cgraph_edge_brings_value_p (cs, src, dest, val))\n> @@ -5334,7 +5334,7 @@ find_scalar_values_for_callers_subset (vec<tree> &known_csts,\n>           continue;\n>         }\n>\n> -      struct cgraph_edge *cs;\n> +      class cgraph_edge *cs;\n>        tree newval = NULL_TREE;\n>        int j;\n>        bool first = true;\n> @@ -5479,7 +5479,7 @@ find_contexts_for_caller_subset (vec<ipa_polymorphic_call_context>\n>     parameter, which allows for simpler early returns.  */\n>\n>  static void\n> -push_agg_values_for_index_from_edge (struct cgraph_edge *cs, int index,\n> +push_agg_values_for_index_from_edge (class cgraph_edge *cs, int index,\n>                                      vec<ipa_argagg_value> *res,\n>                                      const ipa_argagg_value_list *interim)\n>  {\n> @@ -5613,7 +5613,7 @@ push_agg_values_for_index_from_edge (struct cgraph_edge *cs, int index,\n>     with INTERIM.  */\n>\n>  static void\n> -push_agg_values_from_edge (struct cgraph_edge *cs,\n> +push_agg_values_from_edge (class cgraph_edge *cs,\n>                            ipa_node_params *dest_info,\n>                            vec<ipa_argagg_value> *res,\n>                            const ipa_argagg_value_list *interim,\n> @@ -5734,7 +5734,7 @@ find_aggregate_values_for_callers_subset_gc (struct cgraph_node *node,\n>     specialized for.  */\n>\n>  static bool\n> -cgraph_edge_brings_all_scalars_for_node (struct cgraph_edge *cs,\n> +cgraph_edge_brings_all_scalars_for_node (class cgraph_edge *cs,\n>                                          struct cgraph_node *node)\n>  {\n>    ipa_node_params *dest_info = ipa_node_params_sum->get (node);\n> @@ -5769,7 +5769,7 @@ cgraph_edge_brings_all_scalars_for_node (struct cgraph_edge *cs,\n>     specialized for.  */\n>\n>  static bool\n> -cgraph_edge_brings_all_agg_vals_for_node (struct cgraph_edge *cs,\n> +cgraph_edge_brings_all_agg_vals_for_node (class cgraph_edge *cs,\n>                                           struct cgraph_node *node)\n>  {\n>    ipcp_transformation *ts = ipcp_get_transformation_summary (node);\n> @@ -5801,7 +5801,7 @@ perhaps_add_new_callers (cgraph_node *node, ipcp_value<valtype> *val)\n>\n>    for (src = val->sources; src; src = src->next)\n>      {\n> -      struct cgraph_edge *cs = src->cs;\n> +      class cgraph_edge *cs = src->cs;\n>        while (cs)\n>         {\n>           if (cgraph_edge_brings_value_p (cs, src, node, val)\n> @@ -6405,7 +6405,7 @@ decide_whether_version_node (struct cgraph_node *node, int cur_sweep)\n>  static void\n>  spread_undeadness (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>\n>    for (cs = node->callees; cs; cs = cs->next_callee)\n>      if (ipa_edge_within_scc (cs))\n> @@ -6431,7 +6431,7 @@ static bool\n>  has_undead_caller_from_outside_scc_p (struct cgraph_node *node,\n>                                       void *data ATTRIBUTE_UNUSED)\n>  {\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>\n>    for (cs = node->callers; cs; cs = cs->next_caller)\n>      if (cs->caller->thunk\n> diff --git a/gcc/ipa-devirt.cc b/gcc/ipa-devirt.cc\n> index 8577e9b30fb..92e712073b7 100644\n> --- a/gcc/ipa-devirt.cc\n> +++ b/gcc/ipa-devirt.cc\n> @@ -3713,7 +3713,7 @@ ipa_devirt (void)\n>  {\n>    struct cgraph_node *n;\n>    hash_set<void *> bad_call_targets;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    struct devirt_stats stats;\n>    memset (&stats, 0, sizeof (stats));\n>\n> diff --git a/gcc/ipa-fnsummary.cc b/gcc/ipa-fnsummary.cc\n> index e187231dfb6..4859327124d 100644\n> --- a/gcc/ipa-fnsummary.cc\n> +++ b/gcc/ipa-fnsummary.cc\n> @@ -248,8 +248,8 @@ ipa_fn_summary::account_size_time (int size, sreal time,\n>\n>  /* We proved E to be unreachable, redirect it to __builtin_unreachable.  */\n>\n> -static struct cgraph_edge *\n> -redirect_to_unreachable (struct cgraph_edge *e)\n> +static class cgraph_edge *\n> +redirect_to_unreachable (class cgraph_edge *e)\n>  {\n>    struct cgraph_node *callee = !e->inline_failed ? e->callee : NULL;\n>    struct cgraph_node *target\n> @@ -282,7 +282,7 @@ redirect_to_unreachable (struct cgraph_edge *e)\n>  /* Set predicate for edge E.  */\n>\n>  static void\n> -edge_set_predicate (struct cgraph_edge *e, ipa_predicate *predicate)\n> +edge_set_predicate (class cgraph_edge *e, ipa_predicate *predicate)\n>  {\n>    /* If the edge is determined to be never executed, redirect it\n>       to BUILTIN_UNREACHABLE to make it clear to IPA passes the call will\n> @@ -606,7 +606,7 @@ fre_will_run_p (struct cgraph_node *node)\n>     COMPUTE_CONTEXTS is true.  */\n>\n>  void\n> -evaluate_properties_for_edge (struct cgraph_edge *e, bool inline_p,\n> +evaluate_properties_for_edge (class cgraph_edge *e, bool inline_p,\n>                               clause_t *clause_ptr,\n>                               clause_t *nonspec_clause_ptr,\n>                               ipa_auto_call_arg_values *avals,\n> @@ -849,7 +849,7 @@ ipa_fn_summary_t::duplicate (cgraph_node *src,\n>        size_time_entry *e;\n>        int optimized_out_size = 0;\n>        bool inlined_to_p = false;\n> -      struct cgraph_edge *edge, *next;\n> +      class cgraph_edge *edge, *next;\n>\n>        info->size_time_table.release ();\n>        avals.m_known_vals.safe_grow_cleared (count, true);\n> @@ -986,8 +986,8 @@ ipa_fn_summary_t::duplicate (cgraph_node *src,\n>  /* Hook that is called by cgraph.cc when a node is duplicated.  */\n>\n>  void\n> -ipa_call_summary_t::duplicate (struct cgraph_edge *src,\n> -                              struct cgraph_edge *dst,\n> +ipa_call_summary_t::duplicate (class cgraph_edge *src,\n> +                              class cgraph_edge *dst,\n>                                class ipa_call_summary *srcinfo,\n>                                class ipa_call_summary *info)\n>  {\n> @@ -1014,7 +1014,7 @@ static void\n>  dump_ipa_call_summary (FILE *f, int indent, struct cgraph_node *node,\n>                        class ipa_fn_summary *info)\n>  {\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    for (edge = node->callees; edge; edge = edge->next_callee)\n>      {\n>        class ipa_call_summary *es = ipa_call_summaries->get (edge);\n> @@ -3046,7 +3046,7 @@ analyze_function_body (struct cgraph_node *node, bool early)\n>           if (is_gimple_call (stmt)\n>               && !gimple_call_internal_p (stmt))\n>             {\n> -             struct cgraph_edge *edge = node->get_edge (stmt);\n> +             class cgraph_edge *edge = node->get_edge (stmt);\n>               ipa_call_summary *es = ipa_call_summaries->get_create (edge);\n>\n>               /* Special case: results of BUILT_IN_CONSTANT_P will be always\n> @@ -3386,7 +3386,7 @@ void\n>  compute_fn_summary (struct cgraph_node *node, bool early)\n>  {\n>    HOST_WIDE_INT self_stack_size;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    gcc_assert (!node->inlined_to);\n>\n> @@ -3554,7 +3554,7 @@ compute_fn_summary_for_current (void)\n>     m_known_aggs in AVALS.  Return false straight away if AVALS is NULL.  */\n>\n>  static bool\n> -estimate_edge_devirt_benefit (struct cgraph_edge *ie,\n> +estimate_edge_devirt_benefit (class cgraph_edge *ie,\n>                               int *size, int *time,\n>                               ipa_call_arg_values *avals)\n>  {\n> @@ -3612,7 +3612,7 @@ estimate_edge_devirt_benefit (struct cgraph_edge *ie,\n>     as far as values of parameters are concerened.  */\n>\n>  static inline void\n> -estimate_edge_size_and_time (struct cgraph_edge *e, int *size, int *min_size,\n> +estimate_edge_size_and_time (class cgraph_edge *e, int *size, int *min_size,\n>                              sreal *time, ipa_call_arg_values *avals,\n>                              ipa_hints *hints)\n>  {\n> @@ -3650,7 +3650,7 @@ estimate_calls_size_and_time_1 (struct cgraph_node *node, int *size,\n>                                 clause_t possible_truths,\n>                                 ipa_call_arg_values *avals)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      {\n>        if (!e->inline_failed)\n> @@ -3696,7 +3696,7 @@ static void\n>  summarize_calls_size_and_time (struct cgraph_node *node,\n>                                ipa_fn_summary *sum)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      {\n>        if (!e->inline_failed)\n> @@ -4298,7 +4298,7 @@ ipa_get_stack_frame_offset (struct cgraph_node *node)\n>  static void\n>  inline_update_callee_summaries (struct cgraph_node *node, int depth)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    ipa_propagate_frequency (node);\n>    for (e = node->callees; e; e = e->next_callee)\n> @@ -4321,8 +4321,8 @@ inline_update_callee_summaries (struct cgraph_node *node, int depth)\n>     of change is now PROB1*PROB2.  */\n>\n>  static void\n> -remap_edge_params (struct cgraph_edge *inlined_edge,\n> -                  struct cgraph_edge *edge)\n> +remap_edge_params (class cgraph_edge *inlined_edge,\n> +                  class cgraph_edge *edge)\n>  {\n>    if (ipa_node_params_sum)\n>      {\n> @@ -4382,7 +4382,7 @@ remap_edge_params (struct cgraph_edge *inlined_edge,\n>     Also update change probabilities.  */\n>\n>  static void\n> -remap_edge_summaries (struct cgraph_edge *inlined_edge,\n> +remap_edge_summaries (class cgraph_edge *inlined_edge,\n>                       struct cgraph_node *node,\n>                       class ipa_fn_summary *info,\n>                       class ipa_node_params *params_summary,\n> @@ -4392,7 +4392,7 @@ remap_edge_summaries (struct cgraph_edge *inlined_edge,\n>                       clause_t possible_truths,\n>                       ipa_predicate *toplev_predicate)\n>  {\n> -  struct cgraph_edge *e, *next;\n> +  class cgraph_edge *e, *next;\n>    for (e = node->callees; e; e = next)\n>      {\n>        ipa_predicate p;\n> @@ -4470,7 +4470,7 @@ remap_freqcounting_predicate (class ipa_fn_summary *info,\n>  /* We inlined EDGE.  Update summary of the function we inlined into.  */\n>\n>  void\n> -ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge)\n> +ipa_merge_fn_summary_after_inlining (class cgraph_edge *edge)\n>  {\n>    ipa_fn_summary *callee_info = ipa_fn_summaries->get (edge->callee);\n>    struct cgraph_node *to = (edge->caller->inlined_to\n> @@ -4673,7 +4673,7 @@ inline_analyze_function (struct cgraph_node *node)\n>    compute_fn_summary (node, false);\n>    if (!optimize)\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        for (e = node->callees; e; e = e->next_callee)\n>         e->inline_failed = CIF_FUNCTION_NOT_OPTIMIZED;\n>        for (e = node->indirect_calls; e; e = e->next_callee)\n> @@ -4720,7 +4720,7 @@ ipa_fn_summary_generate (void)\n>  /* Write inline summary for edge E to OB.  */\n>\n>  static void\n> -read_ipa_call_summary (class lto_input_block *ib, struct cgraph_edge *e,\n> +read_ipa_call_summary (class lto_input_block *ib, class cgraph_edge *e,\n>                        bool prevails)\n>  {\n>    class ipa_call_summary *es = prevails\n> @@ -4808,7 +4808,7 @@ inline_read_section (struct lto_file_decl_data *file_data, const char *data,\n>        class ipa_size_summary *size_info;\n>        lto_symtab_encoder_t encoder;\n>        struct bitpack_d bp;\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        ipa_predicate p;\n>\n>        index = streamer_read_uhwi (&ib);\n> @@ -5013,7 +5013,7 @@ ipa_fn_summary_read (void)\n>  /* Write inline summary for edge E to OB.  */\n>\n>  static void\n> -write_ipa_call_summary (struct output_block *ob, struct cgraph_edge *e)\n> +write_ipa_call_summary (struct output_block *ob, class cgraph_edge *e)\n>  {\n>    class ipa_call_summary *es = ipa_call_summaries->get (e);\n>    int i;\n> @@ -5072,7 +5072,7 @@ ipa_fn_summary_write (void)\n>           class ipa_fn_summary *info = ipa_fn_summaries->get (cnode);\n>           class ipa_size_summary *size_info = ipa_size_summaries->get (cnode);\n>           struct bitpack_d bp;\n> -         struct cgraph_edge *edge;\n> +         class cgraph_edge *edge;\n>           int i;\n>           size_time_entry *e;\n>           struct condition *c;\n> diff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h\n> index de7b7f61cb1..9d71a96535d 100644\n> --- a/gcc/ipa-fnsummary.h\n> +++ b/gcc/ipa-fnsummary.h\n> @@ -417,14 +417,14 @@ void inline_analyze_function (struct cgraph_node *node);\n>  void estimate_ipcp_clone_size_and_time (struct cgraph_node *node,\n>                                         ipa_auto_call_arg_values *avals,\n>                                         ipa_call_estimates *estimates);\n> -void ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge);\n> +void ipa_merge_fn_summary_after_inlining (class cgraph_edge *edge);\n>  void ipa_update_overall_fn_summary (struct cgraph_node *node, bool reset = true);\n>  void compute_fn_summary (struct cgraph_node *, bool);\n>  bool refs_local_or_readonly_memory_p (tree);\n>  bool points_to_local_or_readonly_memory_p (tree);\n>\n>\n> -void evaluate_properties_for_edge (struct cgraph_edge *e,\n> +void evaluate_properties_for_edge (class cgraph_edge *e,\n>                                    bool inline_p,\n>                                    clause_t *clause_ptr,\n>                                    clause_t *nonspec_clause_ptr,\n> @@ -433,12 +433,12 @@ void evaluate_properties_for_edge (struct cgraph_edge *e,\n>\n>  void ipa_fnsummary_cc_finalize (void);\n>  HOST_WIDE_INT ipa_get_stack_frame_offset (struct cgraph_node *node);\n> -void ipa_remove_from_growth_caches (struct cgraph_edge *edge);\n> +void ipa_remove_from_growth_caches (class cgraph_edge *edge);\n>\n>  /* Return true if EDGE is a cross module call.  */\n>\n>  inline bool\n> -cross_module_call_p (struct cgraph_edge *edge)\n> +cross_module_call_p (class cgraph_edge *edge)\n>  {\n>    /* Here we do not want to walk to alias target becuase ICF may create\n>       cross-unit aliases.  */\n> diff --git a/gcc/ipa-icf.cc b/gcc/ipa-icf.cc\n> index 40e9614c736..45d20cd6c35 100644\n> --- a/gcc/ipa-icf.cc\n> +++ b/gcc/ipa-icf.cc\n> @@ -979,7 +979,7 @@ redirect_all_callers (cgraph_node *n, cgraph_node *to)\n>          punt on redirection.  */\n>        if (!e->caller->thunk)\n>         {\n> -         struct cgraph_edge *nexte = e->next_caller;\n> +         class cgraph_edge *nexte = e->next_caller;\n>            e->redirect_callee (to);\n>           e = nexte;\n>            nredirected++;\n> @@ -1509,7 +1509,7 @@ sem_function::hash_stmt (gimple *stmt, inchash::hash &hstate)\n>  bool\n>  sem_function::compare_polymorphic_p (void)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    if (!opt_for_fn (get_node ()->decl, flag_devirtualize))\n>      return false;\n> diff --git a/gcc/ipa-inline-analysis.cc b/gcc/ipa-inline-analysis.cc\n> index ca5f2c8eb20..ca7bfb6ec83 100644\n> --- a/gcc/ipa-inline-analysis.cc\n> +++ b/gcc/ipa-inline-analysis.cc\n> @@ -101,7 +101,7 @@ static long node_context_cache_hit, node_context_cache_miss,\n>     nullified or usually overwritten by more precise reasons later.  */\n>\n>  void\n> -initialize_inline_failed (struct cgraph_edge *e)\n> +initialize_inline_failed (class cgraph_edge *e)\n>  {\n>    struct cgraph_node *callee = e->callee;\n>\n> @@ -157,7 +157,7 @@ free_growth_caches (void)\n>  /* Return hints derived from EDGE.   */\n>\n>  int\n> -simple_edge_hints (struct cgraph_edge *edge)\n> +simple_edge_hints (class cgraph_edge *edge)\n>  {\n>    int hints = 0;\n>    struct cgraph_node *to = (edge->caller->inlined_to\n> @@ -183,7 +183,7 @@ simple_edge_hints (struct cgraph_edge *edge)\n>     size, since we always need both metrics eventually.  */\n>\n>  sreal\n> -do_estimate_edge_time (struct cgraph_edge *edge, sreal *ret_nonspec_time)\n> +do_estimate_edge_time (class cgraph_edge *edge, sreal *ret_nonspec_time)\n>  {\n>    sreal time, nonspec_time;\n>    int size;\n> @@ -301,7 +301,7 @@ reset_node_cache (struct cgraph_node *node)\n>\n>  /* Remove EDGE from caches once it was inlined.  */\n>  void\n> -ipa_remove_from_growth_caches (struct cgraph_edge *edge)\n> +ipa_remove_from_growth_caches (class cgraph_edge *edge)\n>  {\n>    if (node_context_cache)\n>      node_context_cache->remove (edge->callee);\n> @@ -313,7 +313,7 @@ ipa_remove_from_growth_caches (struct cgraph_edge *edge)\n>     Only to be called via estimate_edge_size.  */\n>\n>  int\n> -do_estimate_edge_size (struct cgraph_edge *edge)\n> +do_estimate_edge_size (class cgraph_edge *edge)\n>  {\n>    int size;\n>    struct cgraph_node *callee;\n> @@ -347,7 +347,7 @@ do_estimate_edge_size (struct cgraph_edge *edge)\n>     Only to be called via estimate_edge_size.  */\n>\n>  ipa_hints\n> -do_estimate_edge_hints (struct cgraph_edge *edge)\n> +do_estimate_edge_hints (class cgraph_edge *edge)\n>  {\n>    struct cgraph_node *callee;\n>    clause_t clause, nonspec_clause;\n> @@ -381,7 +381,7 @@ do_estimate_edge_hints (struct cgraph_edge *edge)\n>\n>  int\n>  estimate_size_after_inlining (struct cgraph_node *node,\n> -                             struct cgraph_edge *edge)\n> +                             class cgraph_edge *edge)\n>  {\n>    class ipa_call_summary *es = ipa_call_summaries->get (edge);\n>    ipa_size_summary *s = ipa_size_summaries->get (node);\n> @@ -410,7 +410,7 @@ struct growth_data\n>  static bool\n>  do_estimate_growth_1 (struct cgraph_node *node, void *data)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    struct growth_data *d = (struct growth_data *) data;\n>\n>    for (e = node->callers; e; e = e->next_caller)\n> @@ -495,7 +495,7 @@ estimate_growth (struct cgraph_node *node)\n>\n>  static bool\n>  check_callers (cgraph_node *node, int *growth, int *n, int offline,\n> -              int min_size, struct cgraph_edge *known_edge)\n> +              int min_size, class cgraph_edge *known_edge)\n>  {\n>    ipa_ref *ref;\n>\n> @@ -543,9 +543,9 @@ check_callers (cgraph_node *node, int *growth, int *n, int offline,\n>\n>  bool\n>  growth_positive_p (struct cgraph_node *node,\n> -                  struct cgraph_edge * known_edge, int edge_growth)\n> +                  class cgraph_edge * known_edge, int edge_growth)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    ipa_size_summary *s = ipa_size_summaries->get (node);\n>\n> diff --git a/gcc/ipa-inline-transform.cc b/gcc/ipa-inline-transform.cc\n> index c4df9d91425..efe8321caca 100644\n> --- a/gcc/ipa-inline-transform.cc\n> +++ b/gcc/ipa-inline-transform.cc\n> @@ -65,7 +65,7 @@ int nfunctions_inlined;\n>     copy of function was removed.  */\n>\n>  static bool\n> -can_remove_node_now_p_1 (struct cgraph_node *node, struct cgraph_edge *e)\n> +can_remove_node_now_p_1 (struct cgraph_node *node, class cgraph_edge *e)\n>  {\n>    ipa_ref *ref;\n>\n> @@ -100,7 +100,7 @@ can_remove_node_now_p_1 (struct cgraph_node *node, struct cgraph_edge *e)\n>     group that the whole comdat group is removable.  */\n>\n>  static bool\n> -can_remove_node_now_p (struct cgraph_node *node, struct cgraph_edge *e)\n> +can_remove_node_now_p (struct cgraph_node *node, class cgraph_edge *e)\n>  {\n>    struct cgraph_node *next;\n>    if (!can_remove_node_now_p_1 (node, e))\n> @@ -148,12 +148,12 @@ master_clone_with_noninline_clones_p (struct cgraph_node *node)\n>     transformation.  */\n>\n>  void\n> -clone_inlined_nodes (struct cgraph_edge *e, bool duplicate,\n> +clone_inlined_nodes (class cgraph_edge *e, bool duplicate,\n>                      bool keep_offline_copy,\n>                      bool update_original, int *overall_size)\n>  {\n>    struct cgraph_node *inlining_into;\n> -  struct cgraph_edge *next;\n> +  class cgraph_edge *next;\n>\n>    if (e->caller->inlined_to)\n>      inlining_into = e->caller->inlined_to;\n> @@ -321,14 +321,14 @@ mark_all_inlined_calls_cdtor (cgraph_node *node)\n>     result of inlining.  */\n>\n>  bool\n> -inline_call (struct cgraph_edge *e, bool update_original,\n> +inline_call (class cgraph_edge *e, bool update_original,\n>              vec<cgraph_edge *> *new_edges,\n>              int *overall_size, bool update_overall_summary,\n>              bool *callee_removed)\n>  {\n>    int old_size = 0, new_size = 0;\n>    struct cgraph_node *to = NULL;\n> -  struct cgraph_edge *curr = e;\n> +  class cgraph_edge *curr = e;\n>    bool comdat_local = e->callee->comdat_local_p ();\n>    struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n>    bool new_edges_found = false;\n> @@ -797,7 +797,7 @@ unsigned int\n>  inline_transform (struct cgraph_node *node)\n>  {\n>    unsigned int todo = 0;\n> -  struct cgraph_edge *e, *next;\n> +  class cgraph_edge *e, *next;\n>    bool has_inline = false;\n>\n>    /* FIXME: Currently the pass manager is adding inline transform more than\n> diff --git a/gcc/ipa-inline.cc b/gcc/ipa-inline.cc\n> index 24d8974d5ca..db38ead8276 100644\n> --- a/gcc/ipa-inline.cc\n> +++ b/gcc/ipa-inline.cc\n> @@ -192,7 +192,7 @@ static profile_count spec_rem;\n>     inlined. */\n>\n>  static bool\n> -caller_growth_limits (struct cgraph_edge *e)\n> +caller_growth_limits (class cgraph_edge *e)\n>  {\n>    struct cgraph_node *to = e->caller;\n>    struct cgraph_node *what = e->callee->ultimate_alias_target ();\n> @@ -275,7 +275,7 @@ caller_growth_limits (struct cgraph_edge *e)\n>  /* Dump info about why inlining has failed.  */\n>\n>  static void\n> -report_inline_failed_reason (struct cgraph_edge *e)\n> +report_inline_failed_reason (class cgraph_edge *e)\n>  {\n>    if (dump_enabled_p ())\n>      {\n> @@ -368,7 +368,7 @@ sanitize_attrs_match_for_inline_p (const_tree caller, const_tree callee)\n>     if REPORT is true, output reason to the dump file. */\n>\n>  static bool\n> -can_inline_edge_p (struct cgraph_edge *e, bool report,\n> +can_inline_edge_p (class cgraph_edge *e, bool report,\n>                    bool early = false)\n>  {\n>    gcc_checking_assert (e->inline_failed);\n> @@ -524,7 +524,7 @@ enum can_inline_edge_by_limits_flags\n>     caller growth limits allow doing so.  */\n>\n>  static bool\n> -can_inline_edge_by_limits_p (struct cgraph_edge *e, int flags)\n> +can_inline_edge_by_limits_p (class cgraph_edge *e, int flags)\n>  {\n>    gcc_checking_assert (e->inline_failed);\n>\n> @@ -690,7 +690,7 @@ can_inline_edge_by_limits_p (struct cgraph_edge *e, int flags)\n>  /* Return true if the edge E is inlinable during early inlining.  */\n>\n>  static bool\n> -can_early_inline_edge_p (struct cgraph_edge *e)\n> +can_early_inline_edge_p (class cgraph_edge *e)\n>  {\n>    cgraph_node *caller = (e->caller->inlined_to\n>                          ? e->caller->inlined_to : e->caller);\n> @@ -768,7 +768,7 @@ can_early_inline_edge_p (struct cgraph_edge *e)\n>  static int\n>  num_calls (struct cgraph_node *n)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    int num = 0;\n>\n>    for (e = n->callees; e; e = e->next_callee)\n> @@ -781,7 +781,7 @@ num_calls (struct cgraph_node *n)\n>  /* Return true if we are interested in inlining small function.  */\n>\n>  static bool\n> -want_early_inline_function_p (struct cgraph_edge *e)\n> +want_early_inline_function_p (class cgraph_edge *e)\n>  {\n>    bool want_inline = true;\n>    struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n> @@ -857,7 +857,7 @@ want_early_inline_function_p (struct cgraph_edge *e)\n>     does not happen.  */\n>\n>  inline sreal\n> -compute_uninlined_call_time (struct cgraph_edge *edge,\n> +compute_uninlined_call_time (class cgraph_edge *edge,\n>                              sreal uninlined_call_time,\n>                              sreal freq)\n>  {\n> @@ -878,7 +878,7 @@ compute_uninlined_call_time (struct cgraph_edge *edge,\n>     does happen.  */\n>\n>  inline sreal\n> -compute_inlined_call_time (struct cgraph_edge *edge,\n> +compute_inlined_call_time (class cgraph_edge *edge,\n>                            sreal time,\n>                            sreal freq)\n>  {\n> @@ -907,7 +907,7 @@ compute_inlined_call_time (struct cgraph_edge *edge,\n>     and with inlined is INLINED_TYPE.  */\n>\n>  inline sreal\n> -inlining_speedup (struct cgraph_edge *edge,\n> +inlining_speedup (class cgraph_edge *edge,\n>                   sreal freq,\n>                   sreal uninlined_time,\n>                   sreal inlined_time)\n> @@ -934,7 +934,7 @@ inlining_speedup (struct cgraph_edge *edge,\n>      by call frequency.  */\n>\n>  static sreal\n> -callee_speedup (struct cgraph_edge *e)\n> +callee_speedup (class cgraph_edge *e)\n>  {\n>    sreal unspec_time;\n>    sreal spec_time = estimate_edge_time (e, &unspec_time);\n> @@ -945,7 +945,7 @@ callee_speedup (struct cgraph_edge *e)\n>     param_inline_min_speedup.  */\n>\n>  static bool\n> -big_speedup_p (struct cgraph_edge *e)\n> +big_speedup_p (class cgraph_edge *e)\n>  {\n>    sreal unspec_time;\n>    sreal spec_time = estimate_edge_time (e, &unspec_time);\n> @@ -966,7 +966,7 @@ big_speedup_p (struct cgraph_edge *e)\n>     When REPORT is true, report reason to dump file.  */\n>\n>  static bool\n> -want_inline_small_function_p (struct cgraph_edge *e, bool report)\n> +want_inline_small_function_p (class cgraph_edge *e, bool report)\n>  {\n>    bool want_inline = true;\n>    struct cgraph_node *callee = e->callee->ultimate_alias_target ();\n> @@ -1106,7 +1106,7 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report)\n>     inlining the call will just introduce new recursive calls to appear.  */\n>\n>  static bool\n> -want_inline_self_recursive_call_p (struct cgraph_edge *edge,\n> +want_inline_self_recursive_call_p (class cgraph_edge *edge,\n>                                    struct cgraph_node *outer_node,\n>                                    bool peeling,\n>                                    int depth)\n> @@ -1206,7 +1206,7 @@ want_inline_self_recursive_call_p (struct cgraph_edge *edge,\n>  static bool\n>  check_callers (struct cgraph_node *node, void *has_hot_call)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callers; e; e = e->next_caller)\n>      {\n>        if (!opt_for_fn (e->caller->decl, flag_inline_functions_called_once)\n> @@ -1292,7 +1292,7 @@ wrapper_heuristics_may_apply (struct cgraph_node *where, int size)\n>     of the function or function body size.  */\n>\n>  static sreal\n> -edge_badness (struct cgraph_edge *edge, bool dump)\n> +edge_badness (class cgraph_edge *edge, bool dump)\n>  {\n>    sreal badness;\n>    int growth;\n> @@ -1509,7 +1509,7 @@ edge_badness (struct cgraph_edge *edge, bool dump)\n>\n>  /* Recompute badness of EDGE and update its key in HEAP if needed.  */\n>  static inline void\n> -update_edge_key (edge_heap_t *heap, struct cgraph_edge *edge)\n> +update_edge_key (edge_heap_t *heap, class cgraph_edge *edge)\n>  {\n>    sreal badness = edge_badness (edge, false);\n>    if (edge->aux)\n> @@ -1561,8 +1561,8 @@ update_edge_key (edge_heap_t *heap, struct cgraph_edge *edge)\n>  static void\n>  reset_edge_caches (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *edge;\n> -  struct cgraph_edge *e = node->callees;\n> +  class cgraph_edge *edge;\n> +  class cgraph_edge *e = node->callees;\n>    struct cgraph_node *where = node;\n>    struct ipa_ref *ref;\n>\n> @@ -1613,9 +1613,9 @@ reset_edge_caches (struct cgraph_node *node)\n>  static void\n>  update_caller_keys (edge_heap_t *heap, struct cgraph_node *node,\n>                     bitmap updated_nodes,\n> -                   struct cgraph_edge *check_inlinablity_for)\n> +                   class cgraph_edge *check_inlinablity_for)\n>  {\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    struct ipa_ref *ref;\n>\n>    if ((!node->alias && !ipa_fn_summaries->get (node)->inlinable)\n> @@ -1666,7 +1666,7 @@ update_callee_keys (edge_heap_t *heap, struct cgraph_node *node,\n>                     struct cgraph_node *update_since,\n>                     bitmap updated_nodes)\n>  {\n> -  struct cgraph_edge *e = node->callees;\n> +  class cgraph_edge *e = node->callees;\n>    bool check_inlinability = update_since == node;\n>\n>    if (!e)\n> @@ -1748,7 +1748,7 @@ static void\n>  lookup_recursive_calls (struct cgraph_node *node, struct cgraph_node *where,\n>                         edge_heap_t *heap)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    enum availability avail;\n>\n>    for (e = where->callees; e; e = e->next_callee)\n> @@ -1770,7 +1770,7 @@ lookup_recursive_calls (struct cgraph_node *node, struct cgraph_node *where,\n>     is NULL.  */\n>\n>  static bool\n> -recursive_inlining (struct cgraph_edge *edge,\n> +recursive_inlining (class cgraph_edge *edge,\n>                     vec<cgraph_edge *> *new_edges)\n>  {\n>    cgraph_node *to  = (edge->caller->inlined_to\n> @@ -1780,7 +1780,7 @@ recursive_inlining (struct cgraph_edge *edge,\n>    inline_badness b (edge, sreal::min ());\n>    edge_heap_t heap (b);\n>    struct cgraph_node *node;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    struct cgraph_node *master_clone = NULL, *next;\n>    int depth = 0;\n>    int n = 0;\n> @@ -1806,7 +1806,7 @@ recursive_inlining (struct cgraph_edge *edge,\n>    /* Do the inlining and update list of recursive call during process.  */\n>    while (!heap.empty ())\n>      {\n> -      struct cgraph_edge *curr = heap.extract_min ();\n> +      class cgraph_edge *curr = heap.extract_min ();\n>        struct cgraph_node *cnode, *dest = curr->callee;\n>\n>        if (!can_inline_edge_p (curr, true)\n> @@ -1930,7 +1930,7 @@ add_new_edges_to_heap (edge_heap_t *heap, vec<cgraph_edge *> &new_edges)\n>  {\n>    while (new_edges.length () > 0)\n>      {\n> -      struct cgraph_edge *edge = new_edges.pop ();\n> +      class cgraph_edge *edge = new_edges.pop ();\n>\n>        gcc_assert (!edge->aux);\n>        gcc_assert (edge->callee);\n> @@ -1948,7 +1948,7 @@ add_new_edges_to_heap (edge_heap_t *heap, vec<cgraph_edge *> &new_edges)\n>  /* Remove EDGE from the fibheap.  */\n>\n>  static void\n> -heap_edge_removal_hook (struct cgraph_edge *e, void *data)\n> +heap_edge_removal_hook (class cgraph_edge *e, void *data)\n>  {\n>    if (e->aux)\n>      {\n> @@ -1962,7 +1962,7 @@ heap_edge_removal_hook (struct cgraph_edge *e, void *data)\n>     may get inlined.  */\n>\n>  bool\n> -speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining)\n> +speculation_useful_p (class cgraph_edge *e, bool anticipate_inlining)\n>  {\n>    /* If we have already decided to inline the edge, it seems useful.\n>       Also if ipa-cp or other pass worked hard enough to produce a clone,\n> @@ -2027,7 +2027,7 @@ speculation_useful_p (struct cgraph_edge *e, bool anticipate_inlining)\n>     See if we can remove speculation.  */\n>\n>  static void\n> -resolve_noninline_speculation (edge_heap_t *edge_heap, struct cgraph_edge *edge)\n> +resolve_noninline_speculation (edge_heap_t *edge_heap, class cgraph_edge *edge)\n>  {\n>    if (edge->speculative && !speculation_useful_p (edge, false))\n>      {\n> @@ -2066,7 +2066,7 @@ inline_account_function_p (struct cgraph_node *node)\n>  static bool\n>  sum_callers (struct cgraph_node *node, void *data)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    int *num_calls = (int *)data;\n>\n>    for (e = node->callers; e; e = e->next_caller)\n> @@ -2077,7 +2077,7 @@ sum_callers (struct cgraph_node *node, void *data)\n>  /* We only propagate across edges with non-interposable callee.  */\n>\n>  inline bool\n> -ignore_edge_p (struct cgraph_edge *e)\n> +ignore_edge_p (class cgraph_edge *e)\n>  {\n>    enum availability avail;\n>    e->callee->function_or_virtual_thunk_symbol (&avail, e->caller);\n> @@ -2094,7 +2094,7 @@ static void\n>  inline_small_functions (void)\n>  {\n>    struct cgraph_node *node;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    inline_badness b;\n>    edge_heap_t edge_heap (b);\n>    auto_bitmap updated_nodes;\n> @@ -2174,7 +2174,7 @@ inline_small_functions (void)\n>    FOR_EACH_DEFINED_FUNCTION (node)\n>      {\n>        bool update = false;\n> -      struct cgraph_edge *next = NULL;\n> +      class cgraph_edge *next = NULL;\n>        bool has_speculative = false;\n>\n>        if (!opt_for_fn (node->decl, optimize)\n> @@ -2513,7 +2513,7 @@ inline_small_functions (void)\n>  static void\n>  flatten_function (struct cgraph_node *node, bool early, bool update)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    /* We shouldn't be called recursively when we are being processed.  */\n>    gcc_assert (node->aux == NULL);\n> @@ -2713,7 +2713,7 @@ dump_inline_stats (void)\n>      reason_freq[i] = 0;\n>    FOR_EACH_DEFINED_FUNCTION (node)\n>    {\n> -    struct cgraph_edge *e;\n> +    class cgraph_edge *e;\n>      for (e = node->callees; e; e = e->next_callee)\n>        {\n>         if (e->inline_failed)\n> @@ -2951,7 +2951,7 @@ ipa_inline (void)\n>      {\n>        FOR_EACH_DEFINED_FUNCTION (node)\n>         {\n> -         struct cgraph_edge *edge, *next;\n> +         class cgraph_edge *edge, *next;\n>           bool update=false;\n>\n>           if (!opt_for_fn (node->decl, optimize)\n> @@ -3008,7 +3008,7 @@ ipa_inline (void)\n>  static bool\n>  inline_always_inline_functions (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    bool inlined = false;\n>\n>    for (e = node->callees; e; e = e->next_callee)\n> @@ -3065,7 +3065,7 @@ inline_always_inline_functions (struct cgraph_node *node)\n>  static bool\n>  early_inline_small_functions (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    bool inlined = false;\n>\n>    for (e = node->callees; e; e = e->next_callee)\n> @@ -3131,7 +3131,7 @@ inline_functions_by_afdo (struct cgraph_node *node, bool *speculative_calls)\n>  {\n>    if (!flag_auto_profile || !flag_auto_profile_inlining)\n>      return false;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    bool inlined = false;\n>\n>    *speculative_calls |= afdo_vpt_for_early_inline (node);\n> @@ -3215,7 +3215,7 @@ unsigned int\n>  early_inliner (function *fun)\n>  {\n>    struct cgraph_node *node = cgraph_node::get (current_function_decl);\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    unsigned int todo = 0;\n>    int iterations = 0;\n>    bool inlined = false;\n> diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h\n> index ed492cf8361..56d70802c1c 100644\n> --- a/gcc/ipa-inline.h\n> +++ b/gcc/ipa-inline.h\n> @@ -42,12 +42,12 @@ public:\n>  extern fast_call_summary<edge_growth_cache_entry *, va_heap> *edge_growth_cache;\n>\n>  /* In ipa-inline-analysis.cc  */\n> -int estimate_size_after_inlining (struct cgraph_node *, struct cgraph_edge *);\n> +int estimate_size_after_inlining (struct cgraph_node *, class cgraph_edge *);\n>  int estimate_growth (struct cgraph_node *);\n> -bool growth_positive_p (struct cgraph_node *, struct cgraph_edge *, int);\n> -int do_estimate_edge_size (struct cgraph_edge *edge);\n> -sreal do_estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL);\n> -ipa_hints do_estimate_edge_hints (struct cgraph_edge *edge);\n> +bool growth_positive_p (struct cgraph_node *, class cgraph_edge *, int);\n> +int do_estimate_edge_size (class cgraph_edge *edge);\n> +sreal do_estimate_edge_time (class cgraph_edge *edge, sreal *nonspec_time = NULL);\n> +ipa_hints do_estimate_edge_hints (class cgraph_edge *edge);\n>  void reset_node_cache (struct cgraph_node *node);\n>  void initialize_growth_caches ();\n>  void free_growth_caches (void);\n> @@ -58,10 +58,10 @@ bool inline_account_function_p (struct cgraph_node *node);\n>\n>\n>  /* In ipa-inline-transform.cc  */\n> -bool inline_call (struct cgraph_edge *, bool, vec<cgraph_edge *> *, int *, bool,\n> +bool inline_call (class cgraph_edge *, bool, vec<cgraph_edge *> *, int *, bool,\n>                   bool *callee_removed = NULL);\n>  unsigned int inline_transform (struct cgraph_node *);\n> -void clone_inlined_nodes (struct cgraph_edge *e, bool, bool, bool, int *);\n> +void clone_inlined_nodes (class cgraph_edge *e, bool, bool, bool, int *);\n>\n>  extern int ncalls_inlined;\n>  extern int nfunctions_inlined;\n> @@ -70,7 +70,7 @@ extern function_summary <tree *> *ipa_saved_clone_sources;\n>  /* Return estimated size of the inline sequence of EDGE.  */\n>\n>  inline int\n> -estimate_edge_size (struct cgraph_edge *edge)\n> +estimate_edge_size (class cgraph_edge *edge)\n>  {\n>    edge_growth_cache_entry *entry;\n>    if (edge_growth_cache == NULL\n> @@ -83,7 +83,7 @@ estimate_edge_size (struct cgraph_edge *edge)\n>  /* Return lower bound on estimated callee growth after inlining EDGE.  */\n>\n>  inline int\n> -estimate_min_edge_growth (struct cgraph_edge *edge)\n> +estimate_min_edge_growth (class cgraph_edge *edge)\n>  {\n>    ipa_call_summary *s = ipa_call_summaries->get (edge);\n>    struct cgraph_node *callee = edge->callee->ultimate_alias_target ();\n> @@ -93,7 +93,7 @@ estimate_min_edge_growth (struct cgraph_edge *edge)\n>  /* Return estimated callee growth after inlining EDGE.  */\n>\n>  inline int\n> -estimate_edge_growth (struct cgraph_edge *edge)\n> +estimate_edge_growth (class cgraph_edge *edge)\n>  {\n>    ipa_call_summary *s = ipa_call_summaries->get (edge);\n>    gcc_checking_assert (s->call_stmt_size || !edge->callee->analyzed);\n> @@ -104,7 +104,7 @@ estimate_edge_growth (struct cgraph_edge *edge)\n>     EDGE.  */\n>\n>  inline sreal\n> -estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)\n> +estimate_edge_time (class cgraph_edge *edge, sreal *nonspec_time = NULL)\n>  {\n>    edge_growth_cache_entry *entry;\n>    if (edge_growth_cache == NULL\n> @@ -121,7 +121,7 @@ estimate_edge_time (struct cgraph_edge *edge, sreal *nonspec_time = NULL)\n>     EDGE.  */\n>\n>  inline ipa_hints\n> -estimate_edge_hints (struct cgraph_edge *edge)\n> +estimate_edge_hints (class cgraph_edge *edge)\n>  {\n>    edge_growth_cache_entry *entry;\n>    if (edge_growth_cache == NULL\n> diff --git a/gcc/ipa-locality-cloning.cc b/gcc/ipa-locality-cloning.cc\n> index e75458b8fb9..042df0c59da 100644\n> --- a/gcc/ipa-locality-cloning.cc\n> +++ b/gcc/ipa-locality-cloning.cc\n> @@ -356,7 +356,7 @@ order_templ_hashes ()\n>  static void\n>  populate_caller_locality_info (cgraph_node *node, locality_info *info)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callers; e; e = e->next_caller)\n>      {\n>        /* Make a local decision about all edges for EDGE->caller but not the\n> @@ -454,7 +454,7 @@ node_partitioned_p (cgraph_node *node)\n>  static void\n>  add_node_to_partition (locality_partition part, cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    if (node_partitioned_p (node))\n>      return;\n>\n> @@ -790,7 +790,7 @@ create_locality_clone (cgraph_node *cnode,\n>    cgraph_node *cl_node = NULL;\n>    vec<cgraph_edge *> redirect_callers = vNULL;\n>    /* All callers of cnode in current partition are redirected.  */\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    for (edge = cnode->callers; edge; edge = edge->next_caller)\n>      {\n>        struct cgraph_node *caller = edge->caller;\n> @@ -902,7 +902,7 @@ adjust_recursive_callees (cgraph_node *clone, cgraph_node *new_callee,\n>  static void\n>  inline_clones (cgraph_node *caller, cgraph_node *orig_inlined_to)\n>  {\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    for (edge = caller->callees; edge; edge = edge->next_callee)\n>      {\n>        struct cgraph_node *callee = edge->callee;\n> @@ -1320,7 +1320,7 @@ locality_determine_ipa_order (auto_vec<locality_order *> *order)\n>                 continue;\n>               }\n>             sreal count = 0;\n> -           struct cgraph_edge *edge;\n> +           class cgraph_edge *edge;\n>             for (edge = node->callees; edge; edge = edge->next_callee)\n>               {\n>                 /* For PGO, frequency is not used in\n> @@ -1360,7 +1360,7 @@ locality_determine_static_order (auto_vec<locality_order *> *order,\n>         else if (is_entry_node_p (node))\n>           {\n>             sreal count = 0;\n> -           struct cgraph_edge *edge;\n> +           class cgraph_edge *edge;\n>             for (edge = node->callees; edge; edge = edge->next_callee)\n>               {\n>                 sreal freq = edge->sreal_frequency ();\n> diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc\n> index 9372cc1d594..b18ddfc41fa 100644\n> --- a/gcc/ipa-modref.cc\n> +++ b/gcc/ipa-modref.cc\n> @@ -4282,7 +4282,7 @@ namespace {\n>     Ignore not available symbols.  */\n>\n>  static bool\n> -ignore_edge (struct cgraph_edge *e)\n> +ignore_edge (class cgraph_edge *e)\n>  {\n>    /* We merge summaries of inline clones into summaries of functions they\n>       are inlined to.  For that reason the complete function bodies must\n> diff --git a/gcc/ipa-profile.cc b/gcc/ipa-profile.cc\n> index 7c294c2babe..6df1e1c10ee 100644\n> --- a/gcc/ipa-profile.cc\n> +++ b/gcc/ipa-profile.cc\n> @@ -290,7 +290,7 @@ ipa_profile_generate_summary (void)\n>                   if (h)\n>                     {\n>                       gcov_type val, count, all;\n> -                     struct cgraph_edge *e = node->get_edge (stmt);\n> +                     class cgraph_edge *e = node->get_edge (stmt);\n>                       if (e && !e->indirect_unknown_callee)\n>                         continue;\n>\n> @@ -559,7 +559,7 @@ static bool\n>  ipa_propagate_frequency_1 (struct cgraph_node *node, void *data)\n>  {\n>    struct ipa_propagate_frequency_data *d;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>\n>    d = (struct ipa_propagate_frequency_data *)data;\n>    for (edge = node->callers;\n> @@ -630,7 +630,7 @@ ipa_propagate_frequency_1 (struct cgraph_node *node, void *data)\n>  bool\n>  contains_hot_call_p (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      if (e->maybe_hot_p ())\n>        return true;\n> @@ -741,7 +741,7 @@ ipa_propagate_frequency (struct cgraph_node *node)\n>     Be conservative when summaries are not present.  */\n>\n>  static bool\n> -check_argument_count (struct cgraph_node *n, struct cgraph_edge *e)\n> +check_argument_count (struct cgraph_node *n, class cgraph_edge *e)\n>  {\n>    if (!ipa_node_params_sum || !ipa_edge_args_sum)\n>      return true;\n> @@ -764,7 +764,7 @@ static unsigned int\n>  ipa_profile (void)\n>  {\n>    struct cgraph_node **order;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    int order_pos;\n>    bool something_changed = false;\n>    int i;\n> diff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc\n> index ea7519a17d3..798c849f129 100644\n> --- a/gcc/ipa-prop.cc\n> +++ b/gcc/ipa-prop.cc\n> @@ -128,7 +128,7 @@ static struct cgraph_node_hook_list *function_insertion_hook_holder;\n>  struct ipa_cst_ref_desc\n>  {\n>    /* Edge that corresponds to the statement which took the reference.  */\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>    /* Linked list of duplicates created when call graph edges are cloned.  */\n>    struct ipa_cst_ref_desc *next_duplicate;\n>    /* Number of references in IPA structures, IPA_UNDESCRIBED_USE if the value\n> @@ -602,7 +602,7 @@ ipa_dump_jump_function (FILE *f, ipa_jump_func *jump_func,\n>  /* Print the jump functions associated with call graph edge CS to file F.  */\n>\n>  static void\n> -ipa_print_node_jump_functions_for_edge (FILE *f, struct cgraph_edge *cs)\n> +ipa_print_node_jump_functions_for_edge (FILE *f, class cgraph_edge *cs)\n>  {\n>    ipa_edge_args *args = ipa_edge_args_sum->get (cs);\n>    int count = ipa_get_cs_argument_count (args);\n> @@ -625,7 +625,7 @@ ipa_print_node_jump_functions_for_edge (FILE *f, struct cgraph_edge *cs)\n>  void\n>  ipa_print_node_jump_functions (FILE *f, struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>\n>    fprintf (f, \"  Jump functions of caller  %s:\\n\", node->dump_name ());\n>    for (cs = node->callees; cs; cs = cs->next_callee)\n> @@ -697,7 +697,7 @@ ipa_set_jf_cst_copy (struct ipa_jump_func *dst,\n>\n>  static void\n>  ipa_set_jf_constant (struct ipa_jump_func *jfunc, tree constant,\n> -                    struct cgraph_edge *cs)\n> +                    class cgraph_edge *cs)\n>  {\n>    jfunc->type = IPA_JF_CONST;\n>    jfunc->value.constant.value = unshare_expr_without_location (constant);\n> @@ -2310,7 +2310,7 @@ determine_known_aggregate_parts (struct ipa_func_body_info *fbi,\n>     edge E.  */\n>\n>  tree\n> -ipa_get_callee_param_type (struct cgraph_edge *e, int i)\n> +ipa_get_callee_param_type (class cgraph_edge *e, int i)\n>  {\n>    int n;\n>    tree type = (e->callee\n> @@ -2454,7 +2454,7 @@ skip_a_safe_conversion_op (tree t)\n>     This primarily means allocating the correct amount of jump functions.  */\n>\n>  static inline void\n> -init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)\n> +init_callback_edge_summary (class cgraph_edge *cbe, tree attr)\n>  {\n>    ipa_edge_args *cb_args = ipa_edge_args_sum->get_create (cbe);\n>    size_t jf_vec_length = callback_num_args(attr);\n> @@ -2468,7 +2468,7 @@ init_callback_edge_summary (struct cgraph_edge *cbe, tree attr)\n>\n>  static void\n>  ipa_compute_jump_functions_for_edge (struct ipa_func_body_info *fbi,\n> -                                    struct cgraph_edge *cs)\n> +                                    class cgraph_edge *cs)\n>  {\n>    ipa_node_params *info = ipa_node_params_sum->get (cs->caller);\n>    ipa_edge_args *args = ipa_edge_args_sum->get_create (cs);\n> @@ -2714,7 +2714,7 @@ ipa_compute_jump_functions_for_bb (struct ipa_func_body_info *fbi, basic_block b\n>  {\n>    struct ipa_bb_info *bi = ipa_get_bb_info (fbi, bb);\n>    int i;\n> -  struct cgraph_edge *cs;\n> +  class cgraph_edge *cs;\n>\n>    FOR_EACH_VEC_ELT_REVERSE (bi->cg_edges, i, cs)\n>      {\n> @@ -3194,7 +3194,7 @@ ipa_analyze_call_uses (struct ipa_func_body_info *fbi, gcall *call)\n>            && !virtual_method_call_p (target)))\n>      return;\n>\n> -  struct cgraph_edge *cs = fbi->node->get_edge (call);\n> +  class cgraph_edge *cs = fbi->node->get_edge (call);\n>    /* If we previously turned the call into a direct call, there is\n>       no need to analyze.  */\n>    if (cs && !cs->indirect_unknown_callee)\n> @@ -3593,13 +3593,13 @@ ipa_analyze_node (struct cgraph_node *node)\n>    fbi.param_count = ipa_get_param_count (info);\n>    fbi.aa_walk_budget = opt_for_fn (node->decl, param_ipa_max_aa_steps);\n>\n> -  for (struct cgraph_edge *cs = node->callees; cs; cs = cs->next_callee)\n> +  for (class cgraph_edge *cs = node->callees; cs; cs = cs->next_callee)\n>      {\n>        ipa_bb_info *bi = ipa_get_bb_info (&fbi, gimple_bb (cs->call_stmt));\n>        bi->cg_edges.safe_push (cs);\n>      }\n>\n> -  for (struct cgraph_edge *cs = node->indirect_calls; cs; cs = cs->next_callee)\n> +  for (class cgraph_edge *cs = node->indirect_calls; cs; cs = cs->next_callee)\n>      {\n>        ipa_bb_info *bi = ipa_get_bb_info (&fbi, gimple_bb (cs->call_stmt));\n>        bi->cg_edges.safe_push (cs);\n> @@ -3656,8 +3656,8 @@ ipa_analyze_var_static_initializer (varpool_node *node)\n>     indirectly) inlined into CS->callee and that E has not been inlined.  */\n>\n>  static void\n> -update_jump_functions_after_inlining (struct cgraph_edge *cs,\n> -                                     struct cgraph_edge *e)\n> +update_jump_functions_after_inlining (class cgraph_edge *cs,\n> +                                     class cgraph_edge *e)\n>  {\n>    ipa_edge_args *top = ipa_edge_args_sum->get (cs);\n>    ipa_edge_args *args = ipa_edge_args_sum->get (e);\n> @@ -3979,8 +3979,8 @@ update_jump_functions_after_inlining (struct cgraph_edge *cs,\n>     (SPECULATIVE)destination of an indirect edge IE and return the edge.\n>     Otherwise, return NULL.  */\n>\n> -struct cgraph_edge *\n> -ipa_make_edge_direct_to_target (struct cgraph_edge *ie, tree target,\n> +class cgraph_edge *\n> +ipa_make_edge_direct_to_target (class cgraph_edge *ie, tree target,\n>                                 bool speculative)\n>  {\n>    struct cgraph_node *callee;\n> @@ -4114,7 +4114,7 @@ ipa_make_edge_direct_to_target (struct cgraph_edge *ie, tree target,\n>      }\n>    if (!speculative)\n>      {\n> -      struct cgraph_edge *orig = ie;\n> +      class cgraph_edge *orig = ie;\n>        ie = cgraph_edge::make_direct (ie, callee);\n>        /* If we resolved speculative edge the cost is already up to date\n>          for direct call (adjusted by inline_edge_duplication_hook).  */\n> @@ -4269,7 +4269,7 @@ static bool\n>  remove_described_reference (symtab_node *symbol, struct ipa_cst_ref_desc *rdesc)\n>  {\n>    struct ipa_ref *to_del;\n> -  struct cgraph_edge *origin;\n> +  class cgraph_edge *origin;\n>\n>    origin = rdesc->cs;\n>    if (!origin)\n> @@ -4348,8 +4348,8 @@ try_decrement_rdesc_refcount (struct ipa_jump_func *jfunc)\n>     NEW_ROOT and NEW_ROOT_INFO is the node and its info that JFUNC lattices are\n>     relative to.  */\n>\n> -static struct cgraph_edge *\n> -try_make_edge_direct_simple_call (struct cgraph_edge *ie,\n> +static class cgraph_edge *\n> +try_make_edge_direct_simple_call (class cgraph_edge *ie,\n>                                   struct ipa_jump_func *jfunc, tree target_type,\n>                                   struct cgraph_node *new_root,\n>                                   class ipa_node_params *new_root_info)\n> @@ -4393,7 +4393,7 @@ try_make_edge_direct_simple_call (struct cgraph_edge *ie,\n>     and target (the latter can be NULL) are dumped when dumping is enabled.  */\n>\n>  tree\n> -ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target)\n> +ipa_impossible_devirt_target (class cgraph_edge *ie, tree target)\n>  {\n>    if (dump_file)\n>      {\n> @@ -4420,8 +4420,8 @@ ipa_impossible_devirt_target (struct cgraph_edge *ie, tree target)\n>     NEW_ROOT_INFO is the node and its info that JFUNC lattices are relative\n>     to.  */\n>\n> -static struct cgraph_edge *\n> -try_make_edge_direct_virtual_call (struct cgraph_edge *ie,\n> +static class cgraph_edge *\n> +try_make_edge_direct_virtual_call (class cgraph_edge *ie,\n>                                    struct ipa_jump_func *jfunc,\n>                                    class ipa_polymorphic_call_context ctx,\n>                                    struct cgraph_node *new_root,\n> @@ -4533,7 +4533,7 @@ try_make_edge_direct_virtual_call (struct cgraph_edge *ie,\n>     unless NEW_EDGES is NULL.  Return true iff a new edge(s) were created.  */\n>\n>  static bool\n> -update_indirect_edges_after_inlining (struct cgraph_edge *cs,\n> +update_indirect_edges_after_inlining (class cgraph_edge *cs,\n>                                       struct cgraph_node *node,\n>                                       vec<cgraph_edge *> *new_edges)\n>  {\n> @@ -4681,11 +4681,11 @@ update_indirect_edges_after_inlining (struct cgraph_edge *cs,\n>     created.  */\n>\n>  static bool\n> -propagate_info_to_inlined_callees (struct cgraph_edge *cs,\n> +propagate_info_to_inlined_callees (class cgraph_edge *cs,\n>                                    struct cgraph_node *node,\n>                                    vec<cgraph_edge *> *new_edges)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    bool res;\n>\n>    res = update_indirect_edges_after_inlining (cs, node, new_edges);\n> @@ -4716,7 +4716,7 @@ combine_controlled_uses_counters (int c, int d)\n>     tree of inlined nodes.  */\n>\n>  static void\n> -propagate_controlled_uses (struct cgraph_edge *cs)\n> +propagate_controlled_uses (class cgraph_edge *cs)\n>  {\n>    ipa_edge_args *args = ipa_edge_args_sum->get (cs);\n>    if (!args)\n> @@ -4858,7 +4858,7 @@ propagate_controlled_uses (struct cgraph_edge *cs)\n>     created.  */\n>\n>  bool\n> -ipa_propagate_indirect_call_infos (struct cgraph_edge *cs,\n> +ipa_propagate_indirect_call_infos (class cgraph_edge *cs,\n>                                    vec<cgraph_edge *> *new_edges)\n>  {\n>    bool changed;\n> @@ -5418,7 +5418,7 @@ ipa_write_jump_function (struct output_block *ob,\n>  static void\n>  ipa_read_jump_function (class lto_input_block *ib,\n>                         struct ipa_jump_func *jump_func,\n> -                       struct cgraph_edge *cs,\n> +                       class cgraph_edge *cs,\n>                         class data_in *data_in,\n>                         bool prevails)\n>  {\n> @@ -5553,7 +5553,7 @@ ipa_read_jump_function (class lto_input_block *ib,\n>\n>  static void\n>  ipa_write_indirect_edge_info (struct output_block *ob,\n> -                             struct cgraph_edge *cs)\n> +                             class cgraph_edge *cs)\n>  {\n>    struct bitpack_d bp;\n>\n> @@ -5607,7 +5607,7 @@ ipa_write_indirect_edge_info (struct output_block *ob,\n>  static void\n>  ipa_read_indirect_edge_info (class lto_input_block *ib,\n>                              class data_in *data_in,\n> -                            struct cgraph_edge *cs,\n> +                            class cgraph_edge *cs,\n>                              class ipa_node_params *info)\n>  {\n>    struct bitpack_d bp;\n> @@ -5671,7 +5671,7 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node)\n>    lto_symtab_encoder_t encoder;\n>    ipa_node_params *info = ipa_node_params_sum->get (node);\n>    int j;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    struct bitpack_d bp;\n>\n>    encoder = ob->decl_state->symtab_node_encoder;\n> @@ -5746,7 +5746,7 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node)\n>  static void\n>  ipa_read_edge_info (class lto_input_block *ib,\n>                     class data_in *data_in,\n> -                   struct cgraph_edge *e, bool prevails)\n> +                   class cgraph_edge *e, bool prevails)\n>  {\n>    int count = streamer_read_uhwi (ib);\n>    bool contexts_computed = count & 1;\n> @@ -5796,7 +5796,7 @@ ipa_read_node_info (class lto_input_block *ib, struct cgraph_node *node,\n>                     class data_in *data_in)\n>  {\n>    int k;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    struct bitpack_d bp;\n>    bool prevails = node->prevailing_p ();\n>    ipa_node_params *info\n> diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h\n> index 173f5f466a2..4acc3d15568 100644\n> --- a/gcc/ipa-prop.h\n> +++ b/gcc/ipa-prop.h\n> @@ -1175,7 +1175,7 @@ ipa_check_create_node_params (void)\n>     without causing allocations.  */\n>\n>  inline bool\n> -ipa_edge_args_info_available_for_edge_p (struct cgraph_edge *edge)\n> +ipa_edge_args_info_available_for_edge_p (class cgraph_edge *edge)\n>  {\n>    return ipa_edge_args_sum->exists (edge);\n>  }\n> @@ -1192,16 +1192,16 @@ ipcp_get_transformation_summary (cgraph_node *node)\n>  /* Function formal parameters related computations.  */\n>  void ipa_initialize_node_params (struct cgraph_node *node);\n>  void ipa_print_constant_value (FILE *f, tree val);\n> -bool ipa_propagate_indirect_call_infos (struct cgraph_edge *cs,\n> +bool ipa_propagate_indirect_call_infos (class cgraph_edge *cs,\n>                                         vec<cgraph_edge *> *new_edges);\n>\n>  /* Indirect edge processing and target discovery.  */\n> -tree ipa_get_indirect_edge_target (struct cgraph_edge *ie,\n> +tree ipa_get_indirect_edge_target (class cgraph_edge *ie,\n>                                    ipa_call_arg_values *avals,\n>                                    bool *speculative);\n> -struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree,\n> +class cgraph_edge *ipa_make_edge_direct_to_target (class cgraph_edge *, tree,\n>                                                     bool speculative = false);\n> -tree ipa_impossible_devirt_target (struct cgraph_edge *, tree);\n> +tree ipa_impossible_devirt_target (class cgraph_edge *, tree);\n>\n>\n>  /* Functions related to both.  */\n> @@ -1266,7 +1266,7 @@ void ipa_dump_jump_function (FILE *f, ipa_jump_func *jfunc,\n>  void ipa_dump_noted_record_fnptrs (FILE *f);\n>  void ipa_debug_noted_record_fnptrs (void);\n>  void ipa_release_body_info (struct ipa_func_body_info *);\n> -tree ipa_get_callee_param_type (struct cgraph_edge *e, int i);\n> +tree ipa_get_callee_param_type (class cgraph_edge *e, int i);\n>  bool ipcp_get_parm_bits (tree, tree *, widest_int *);\n>  tree ipcp_get_aggregate_const (struct function *func, tree parm, bool by_ref,\n>                                HOST_WIDE_INT bit_offset,\n> diff --git a/gcc/ipa-pure-const.cc b/gcc/ipa-pure-const.cc\n> index af94e5e3b74..b531043c361 100644\n> --- a/gcc/ipa-pure-const.cc\n> +++ b/gcc/ipa-pure-const.cc\n> @@ -1404,7 +1404,7 @@ pure_const_read_summary (void)\n>     is not interposable.  */\n>\n>  static bool\n> -ignore_edge_for_nothrow (struct cgraph_edge *e)\n> +ignore_edge_for_nothrow (class cgraph_edge *e)\n>  {\n>    if (!e->can_throw_external || TREE_NOTHROW (e->callee->decl))\n>      return true;\n> @@ -1428,7 +1428,7 @@ ignore_edge_for_nothrow (struct cgraph_edge *e)\n>  static bool\n>  self_recursive_p (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      if (e->callee->function_symbol () == node)\n>        return true;\n> @@ -1451,7 +1451,7 @@ cdtor_p (cgraph_node *n, void *)\n>     Ignore not available symbols.  */\n>\n>  static bool\n> -ignore_edge_for_pure_const (struct cgraph_edge *e)\n> +ignore_edge_for_pure_const (class cgraph_edge *e)\n>  {\n>    enum availability avail;\n>    cgraph_node *ultimate_target\n> @@ -1610,8 +1610,8 @@ propagate_pure_const (void)\n>        w = node;\n>        while (w && pure_const_state != IPA_NEITHER)\n>         {\n> -         struct cgraph_edge *e;\n> -         struct cgraph_edge *ie;\n> +         class cgraph_edge *e;\n> +         class cgraph_edge *ie;\n>           int i;\n>           struct ipa_ref *ref = NULL;\n>\n> @@ -1774,7 +1774,7 @@ propagate_pure_const (void)\n>        w = node;\n>        while (w && !can_free)\n>         {\n> -         struct cgraph_edge *e;\n> +         class cgraph_edge *e;\n>           funct_state w_l = funct_state_summaries->get (w);\n>\n>           if (w_l->can_free\n> @@ -1894,7 +1894,7 @@ propagate_nothrow (void)\n>        w = node;\n>        while (w && !can_throw)\n>         {\n> -         struct cgraph_edge *e, *ie;\n> +         class cgraph_edge *e, *ie;\n>\n>           if (!TREE_NOTHROW (w->decl))\n>             {\n> diff --git a/gcc/ipa-reference.cc b/gcc/ipa-reference.cc\n> index c5699312c8f..aa598c8c25b 100644\n> --- a/gcc/ipa-reference.cc\n> +++ b/gcc/ipa-reference.cc\n> @@ -385,7 +385,7 @@ copy_static_var_set (bitmap set, bool for_propagation)\n>  static void\n>  propagate_bits (ipa_reference_global_vars_info_t x_global, struct cgraph_node *x)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    bool read_all = x_global->statics_read == all_module_statics;\n>    bool write_all = x_global->statics_written == all_module_statics;\n>    for (e = x->callees;\n> @@ -691,7 +691,7 @@ static void\n>  get_read_write_all_from_node (struct cgraph_node *node,\n>                               bool &read_all, bool &write_all)\n>  {\n> -  struct cgraph_edge *e, *ie;\n> +  class cgraph_edge *e, *ie;\n>\n>    /* When function is overwritable, we cannot assume anything.  */\n>    if (node->get_availability () <= AVAIL_INTERPOSABLE\n> diff --git a/gcc/ipa-sra.cc b/gcc/ipa-sra.cc\n> index fd33e2028a0..5c8bc7c069c 100644\n> --- a/gcc/ipa-sra.cc\n> +++ b/gcc/ipa-sra.cc\n> @@ -3098,7 +3098,7 @@ ipa_sra_dump_all_summaries (FILE *f, bool hints)\n>           fprintf (f, \"\\n\");\n>         }\n>\n> -      struct cgraph_edge *cs;\n> +      class cgraph_edge *cs;\n>        for (cs = node->callees; cs; cs = cs->next_callee)\n>         {\n>           fprintf (f, \"  Summary for edge %s->%s:\\n\", cs->caller->dump_name (),\n> diff --git a/gcc/ipa-utils.cc b/gcc/ipa-utils.cc\n> index f6ba07aef48..e6f9a52b180 100644\n> --- a/gcc/ipa-utils.cc\n> +++ b/gcc/ipa-utils.cc\n> @@ -88,9 +88,9 @@ struct searchc_env {\n>\n>  static void\n>  searchc (struct searchc_env* env, struct cgraph_node *v,\n> -        bool (*ignore_edge) (struct cgraph_edge *))\n> +        bool (*ignore_edge) (class cgraph_edge *))\n>  {\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    struct ipa_dfs_info *v_info = (struct ipa_dfs_info *) v->aux;\n>\n>    /* mark node as old */\n> @@ -171,7 +171,7 @@ searchc (struct searchc_env* env, struct cgraph_node *v,\n>  int\n>  ipa_reduced_postorder (struct cgraph_node **order,\n>                        bool reduce,\n> -                      bool (*ignore_edge) (struct cgraph_edge *))\n> +                      bool (*ignore_edge) (class cgraph_edge *))\n>  {\n>    struct cgraph_node *node;\n>    struct searchc_env env;\n> @@ -259,7 +259,7 @@ ipa_get_nodes_in_cycle (struct cgraph_node *node)\n>     computed by ipa_reduced_postorder.  */\n>\n>  bool\n> -ipa_edge_within_scc (struct cgraph_edge *cs)\n> +ipa_edge_within_scc (class cgraph_edge *cs)\n>  {\n>    struct ipa_dfs_info *caller_dfs = (struct ipa_dfs_info *) cs->caller->aux;\n>    struct ipa_dfs_info *callee_dfs;\n> @@ -274,7 +274,7 @@ ipa_edge_within_scc (struct cgraph_edge *cs)\n>  struct postorder_stack\n>  {\n>    struct cgraph_node *node;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    int ref;\n>  };\n>\n> @@ -288,7 +288,7 @@ ipa_reverse_postorder (struct cgraph_node **order)\n>    struct cgraph_node *node, *node2;\n>    int stack_size = 0;\n>    int order_pos = 0;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    int pass;\n>    struct ipa_ref *ref = NULL;\n>\n> @@ -381,7 +381,7 @@ scale_ipa_profile_for_fn (struct cgraph_node *node, profile_count orig_count)\n>  {\n>    profile_count to = node->count;\n>    profile_count::adjust_for_ipa_scaling (&to, &orig_count);\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    for (e = node->callees; e; e = e->next_callee)\n>      e->count = e->count.apply_scale (to, orig_count);\n> @@ -527,7 +527,7 @@ ipa_merge_profiles (struct cgraph_node *dst,\n>    else\n>      {\n>        basic_block srcbb, dstbb;\n> -      struct cgraph_edge *e, *e2;\n> +      class cgraph_edge *e, *e2;\n>\n>        for (e = dst->callees, e2 = src->callees; e && e2 && match;\n>            e2 = e2->next_callee, e = e->next_callee)\n> @@ -610,7 +610,7 @@ ipa_merge_profiles (struct cgraph_node *dst,\n>      }\n>    if (match)\n>      {\n> -      struct cgraph_edge *e, *e2;\n> +      class cgraph_edge *e, *e2;\n>        basic_block srcbb, dstbb;\n>\n>        /* Function and global profile may be out of sync.  First scale it same\n> diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h\n> index 172ba401d3d..e85eddd2d1c 100644\n> --- a/gcc/ipa-utils.h\n> +++ b/gcc/ipa-utils.h\n> @@ -37,10 +37,10 @@ struct ipa_dfs_info {\n>  /* In ipa-utils.cc  */\n>  void ipa_print_order (FILE*, const char *, struct cgraph_node**, int);\n>  int ipa_reduced_postorder (struct cgraph_node **, bool,\n> -                         bool (*ignore_edge) (struct cgraph_edge *));\n> +                         bool (*ignore_edge) (class cgraph_edge *));\n>  void ipa_free_postorder_info (void);\n>  vec<cgraph_node *> ipa_get_nodes_in_cycle (struct cgraph_node *);\n> -bool ipa_edge_within_scc (struct cgraph_edge *);\n> +bool ipa_edge_within_scc (class cgraph_edge *);\n>  int ipa_reverse_postorder (struct cgraph_node **);\n>  tree get_base_var (tree);\n>  void ipa_merge_profiles (struct cgraph_node *dst,\n> @@ -127,7 +127,7 @@ void register_odr_enum (tree type);\n>     the particular node is a virtual function present in the cache.  */\n>\n>  inline vec <cgraph_node *>\n> -possible_polymorphic_call_targets (struct cgraph_edge *e,\n> +possible_polymorphic_call_targets (class cgraph_edge *e,\n>                                    bool *completep = NULL,\n>                                    void **cache_token = NULL,\n>                                    bool speculative = false)\n> @@ -164,7 +164,7 @@ possible_polymorphic_call_targets (tree ref,\n>  /* Dump possible targets of a polymorphic call E into F.  */\n>\n>  inline void\n> -dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e,\n> +dump_possible_polymorphic_call_targets (FILE *f, class cgraph_edge *e,\n>                                         bool verbose = true)\n>  {\n>    ipa_polymorphic_call_context context(e);\n> @@ -182,7 +182,7 @@ dump_possible_polymorphic_call_targets (FILE *f, struct cgraph_edge *e,\n>     E.  */\n>\n>  inline bool\n> -possible_polymorphic_call_target_p (struct cgraph_edge *e,\n> +possible_polymorphic_call_target_p (class cgraph_edge *e,\n>                                     struct cgraph_node *n)\n>  {\n>    ipa_polymorphic_call_context context(e);\n> diff --git a/gcc/ipa-visibility.cc b/gcc/ipa-visibility.cc\n> index d0d6348d534..bae7149fb50 100644\n> --- a/gcc/ipa-visibility.cc\n> +++ b/gcc/ipa-visibility.cc\n> @@ -783,7 +783,7 @@ function_and_variable_visibility (bool whole_program)\n>             {\n>               while (node->callers)\n>                 {\n> -                 struct cgraph_edge *e = node->callers;\n> +                 class cgraph_edge *e = node->callers;\n>\n>                   e->redirect_callee (alias);\n>                   if (gimple_has_body_p (e->caller->decl))\n> diff --git a/gcc/ipa.cc b/gcc/ipa.cc\n> index d1a0bb8ce1d..82378119d22 100644\n> --- a/gcc/ipa.cc\n> +++ b/gcc/ipa.cc\n> @@ -71,7 +71,7 @@ is_indirect_call_target_p (struct cgraph_node *node, void *)\n>  static void\n>  update_inlined_to_pointer (struct cgraph_node *node, struct cgraph_node *inlined_to)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      if (e->callee->inlined_to)\n>        {\n> @@ -173,7 +173,7 @@ process_references (symtab_node *snode,\n>\n>  static void\n>  walk_polymorphic_call_targets (hash_set<void *> *reachable_call_targets,\n> -                              struct cgraph_edge *edge,\n> +                              class cgraph_edge *edge,\n>                                symtab_node **first,\n>                                hash_set<symtab_node *> *reachable)\n>  {\n> @@ -426,12 +426,12 @@ symbol_table::remove_unreachable_nodes (FILE *file)\n>              inline functions we decided to not inline.  */\n>           if (!in_boundary_p)\n>             {\n> -             struct cgraph_edge *e;\n> +             class cgraph_edge *e;\n>               /* Keep alive possible targets for devirtualization.  */\n>               if (opt_for_fn (cnode->decl, optimize)\n>                   && opt_for_fn (cnode->decl, flag_devirtualize))\n>                 {\n> -                 struct cgraph_edge *next;\n> +                 class cgraph_edge *next;\n>                   for (e = cnode->indirect_calls; e; e = next)\n>                     {\n>                       next = e->next_callee;\n> diff --git a/gcc/lto-cgraph.cc b/gcc/lto-cgraph.cc\n> index 635ed1af76b..e0efae5b6aa 100644\n> --- a/gcc/lto-cgraph.cc\n> +++ b/gcc/lto-cgraph.cc\n> @@ -239,7 +239,7 @@ lto_set_symtab_encoder_in_partition (lto_symtab_encoder_t encoder,\n>  /* Output the cgraph EDGE to OB using ENCODER.  */\n>\n>  static void\n> -lto_output_edge (struct lto_simple_output_block *ob, struct cgraph_edge *edge,\n> +lto_output_edge (struct lto_simple_output_block *ob, class cgraph_edge *edge,\n>                  lto_symtab_encoder_t encoder)\n>  {\n>    unsigned int uid;\n> @@ -335,7 +335,7 @@ referenced_from_other_partition_p (symtab_node *node, lto_symtab_encoder_t encod\n>  bool\n>  reachable_from_other_partition_p (struct cgraph_node *node, lto_symtab_encoder_t encoder)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    if (!node->definition)\n>      return false;\n>    if (node->inlined_to)\n> @@ -374,7 +374,7 @@ referenced_from_this_partition_p (symtab_node *node,\n>  bool\n>  reachable_from_this_partition_p (struct cgraph_node *node, lto_symtab_encoder_t encoder)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callers; e; e = e->next_caller)\n>      if (lto_symtab_encoder_in_partition_p (encoder, e->caller))\n>        return true;\n> @@ -752,7 +752,7 @@ output_profile_summary (struct lto_simple_output_block *ob)\n>     edge.  */\n>\n>  static void\n> -output_outgoing_cgraph_edges (struct cgraph_edge *edge,\n> +output_outgoing_cgraph_edges (class cgraph_edge *edge,\n>                               struct lto_simple_output_block *ob,\n>                               lto_symtab_encoder_t encoder)\n>  {\n> @@ -871,7 +871,7 @@ select_what_to_stream (void)\n>  lto_symtab_encoder_t\n>  compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)\n>  {\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    int i;\n>    lto_symtab_encoder_t encoder;\n>    lto_symtab_encoder_iterator lsei;\n> @@ -1550,7 +1550,7 @@ input_edge (class lto_input_block *ib, vec<symtab_node *> nodes,\n>             bool indirect)\n>  {\n>    struct cgraph_node *caller, *callee;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>    unsigned int stmt_id, speculative_id;\n>    profile_count count;\n>    cgraph_inline_failed_t inline_failed;\n> @@ -1759,7 +1759,7 @@ merge_profile_summaries (struct lto_file_decl_data **file_data_vec)\n>    unsigned int j;\n>    gcov_unsigned_t max_runs = 0;\n>    struct cgraph_node *node;\n> -  struct cgraph_edge *edge;\n> +  class cgraph_edge *edge;\n>\n>    /* Find unit with maximal number of runs.  If we ever get serious about\n>       roundoff errors, we might also consider computing smallest common\n> @@ -2089,7 +2089,7 @@ output_cgraph_opt_summary_p (struct cgraph_node *node)\n>  /* Output optimization summary for EDGE to OB.  */\n>  static void\n>  output_edge_opt_summary (struct output_block *ob ATTRIBUTE_UNUSED,\n> -                        struct cgraph_edge *edge ATTRIBUTE_UNUSED)\n> +                        class cgraph_edge *edge ATTRIBUTE_UNUSED)\n>  {\n>  }\n>\n> @@ -2102,7 +2102,7 @@ output_node_opt_summary (struct output_block *ob,\n>  {\n>    struct ipa_replace_map *map;\n>    int i;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    /* TODO: Should this code be moved to ipa-param-manipulation?  */\n>    struct bitpack_d bp;\n> @@ -2201,7 +2201,7 @@ output_cgraph_opt_summary (void)\n>  /* Input optimisation summary of EDGE.  */\n>\n>  static void\n> -input_edge_opt_summary (struct cgraph_edge *edge ATTRIBUTE_UNUSED,\n> +input_edge_opt_summary (class cgraph_edge *edge ATTRIBUTE_UNUSED,\n>                         class lto_input_block *ib_main ATTRIBUTE_UNUSED)\n>  {\n>  }\n> @@ -2215,7 +2215,7 @@ input_node_opt_summary (struct cgraph_node *node,\n>  {\n>    int i;\n>    int count;\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    /* TODO: Should this code be moved to ipa-param-manipulation?  */\n>    struct bitpack_d bp;\n> diff --git a/gcc/lto-streamer-in.cc b/gcc/lto-streamer-in.cc\n> index 9659d4aa532..41890eda50c 100644\n> --- a/gcc/lto-streamer-in.cc\n> +++ b/gcc/lto-streamer-in.cc\n> @@ -1204,7 +1204,7 @@ fixup_call_stmt_edges_1 (struct cgraph_node *node, gimple **stmts,\n>  #define STMT_UID_NOT_IN_RANGE(uid) \\\n>    (gimple_stmt_max_uid (fn) < uid || uid == 0)\n>\n> -  struct cgraph_edge *cedge;\n> +  class cgraph_edge *cedge;\n>    struct ipa_ref *ref = NULL;\n>    unsigned int i;\n>\n> diff --git a/gcc/lto/lto-partition.cc b/gcc/lto/lto-partition.cc\n> index 4812142c48d..d5694bb23ac 100644\n> --- a/gcc/lto/lto-partition.cc\n> +++ b/gcc/lto/lto-partition.cc\n> @@ -201,7 +201,7 @@ add_symbol_to_partition_1 (ltrans_partition part, symtab_node *node)\n>\n>    if (cgraph_node *cnode = dyn_cast <cgraph_node *> (node))\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        if (!node->alias && c == SYMBOL_PARTITION)\n>         part->insns += ipa_size_summaries->get (cnode)->size;\n>\n> @@ -1345,7 +1345,7 @@ lto_balanced_map (int n_lto_partitions, int max_partition_size)\n>\n>           if (cgraph_node *node = dyn_cast <cgraph_node *> (snode))\n>             {\n> -             struct cgraph_edge *edge;\n> +             class cgraph_edge *edge;\n>\n>               gcc_assert (node->definition || node->weakref);\n>\n> @@ -1618,7 +1618,7 @@ add_node_references_to_partition (ltrans_partition partition, symtab_node *node)\n>        }\n>    if (cgraph_node *cnode = dyn_cast <cgraph_node *> (node))\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>\n>        /* Add all inline clones and callees that are duplicated.  */\n>        for (e = cnode->callees; e; e = e->next_callee)\n> diff --git a/gcc/lto/lto-symtab.cc b/gcc/lto/lto-symtab.cc\n> index b458462dc23..54ad072a1c7 100644\n> --- a/gcc/lto/lto-symtab.cc\n> +++ b/gcc/lto/lto-symtab.cc\n> @@ -43,7 +43,7 @@ static void\n>  lto_cgraph_replace_node (struct cgraph_node *node,\n>                          struct cgraph_node *prevailing_node)\n>  {\n> -  struct cgraph_edge *e, *next;\n> +  class cgraph_edge *e, *next;\n>    bool compatible_p;\n>\n>    if (dump_file)\n> diff --git a/gcc/passes.cc b/gcc/passes.cc\n> index 9ec37eeb2a9..50f4ac2da2b 100644\n> --- a/gcc/passes.cc\n> +++ b/gcc/passes.cc\n> @@ -3229,7 +3229,7 @@ debug_properties (unsigned int props)\n>  bool\n>  function_called_by_processed_nodes_p (void)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = cgraph_node::get (current_function_decl)->callers;\n>         e;\n>         e = e->next_caller)\n> diff --git a/gcc/predict.cc b/gcc/predict.cc\n> index 2859f64964b..8ee18ee4891 100644\n> --- a/gcc/predict.cc\n> +++ b/gcc/predict.cc\n> @@ -3747,7 +3747,7 @@ drop_profile (struct cgraph_node *node, profile_count call_count)\n>        fn->cfg->count_max = profile_count::uninitialized ();\n>      }\n>\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>    for (e = node->callees; e; e = e->next_callee)\n>      e->count = gimple_bb (e->call_stmt)->count;\n>    for (e = node->indirect_calls; e; e = e->next_callee)\n> @@ -3784,7 +3784,7 @@ handle_missing_profiles (void)\n>       lost some profile.  Drop its function profile to PROFILE_GUESSED.  */\n>    FOR_EACH_DEFINED_FUNCTION (node)\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        profile_count call_count = profile_count::zero ();\n>        gcov_type max_tp_first_run = 0;\n>        struct function *fn = DECL_STRUCT_FUNCTION (node->decl);\n> @@ -3818,7 +3818,7 @@ handle_missing_profiles (void)\n>       potentially called by COMDATs we already dropped the profile on.  */\n>    while (worklist.length () > 0)\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>\n>        node = worklist.pop ();\n>        for (e = node->callees; e; e = e->next_caller)\n> diff --git a/gcc/trans-mem.cc b/gcc/trans-mem.cc\n> index b10704b2f55..d1eaf2a20b6 100644\n> --- a/gcc/trans-mem.cc\n> +++ b/gcc/trans-mem.cc\n> @@ -4332,7 +4332,7 @@ ipa_tm_note_irrevocable (struct cgraph_node *node,\n>                          cgraph_node_queue *worklist_p)\n>  {\n>    struct tm_ipa_cg_data *d = get_cg_data (&node, true);\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    d->is_irrevocable = true;\n>\n> @@ -4764,7 +4764,7 @@ ipa_tm_mayenterirr_function (struct cgraph_node *node)\n>  static void\n>  ipa_tm_diagnose_tm_safe (struct cgraph_node *node)\n>  {\n> -  struct cgraph_edge *e;\n> +  class cgraph_edge *e;\n>\n>    for (e = node->callees; e ; e = e->next_callee)\n>      if (!is_tm_callable (e->callee->decl)\n> @@ -5185,7 +5185,7 @@ ipa_tm_transform_calls_redirect (struct cgraph_node *node,\n>  {\n>    gcall *stmt = as_a <gcall *> (gsi_stmt (*gsi));\n>    struct cgraph_node *new_node;\n> -  struct cgraph_edge *e = node->get_edge (stmt);\n> +  class cgraph_edge *e = node->get_edge (stmt);\n>    tree fndecl = gimple_call_fndecl (stmt);\n>\n>    /* For indirect calls, pass the address through the runtime.  */\n> @@ -5558,7 +5558,7 @@ ipa_tm_execute (void)\n>    for (i = 0; i < irr_worklist.length (); ++i)\n>      {\n>        struct cgraph_node *caller;\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        struct ipa_ref *ref;\n>\n>        if (i > 256 && i == irr_worklist.length () / 8)\n> diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc\n> index 4cf754f5e56..dee7c45a943 100644\n> --- a/gcc/tree-cfgcleanup.cc\n> +++ b/gcc/tree-cfgcleanup.cc\n> @@ -1550,7 +1550,7 @@ delete_unreachable_blocks_update_callgraph (cgraph_node *dst_node,\n>\n>            for (bsi = gsi_start_bb (b); !gsi_end_p (bsi); gsi_next (&bsi))\n>             {\n> -             struct cgraph_edge *e;\n> +             class cgraph_edge *e;\n>               struct cgraph_node *node;\n>\n>               dst_node->remove_stmt_references (gsi_stmt (bsi));\n> diff --git a/gcc/tree-inline.cc b/gcc/tree-inline.cc\n> index df5597ef30d..2c51eed9b6b 100644\n> --- a/gcc/tree-inline.cc\n> +++ b/gcc/tree-inline.cc\n> @@ -2291,7 +2291,7 @@ copy_bb (copy_body_data *id, basic_block bb,\n>              callgraph edges and update or duplicate them.  */\n>           if (gcall *call_stmt = dyn_cast <gcall *> (stmt))\n>             {\n> -             struct cgraph_edge *edge;\n> +             class cgraph_edge *edge;\n>\n>               switch (id->transform_call_graph_edges)\n>                 {\n> @@ -2299,7 +2299,7 @@ copy_bb (copy_body_data *id, basic_block bb,\n>                   edge = id->src_node->get_edge (orig_stmt);\n>                   if (edge)\n>                     {\n> -                     struct cgraph_edge *old_edge = edge;\n> +                     class cgraph_edge *old_edge = edge;\n>\n>                       /* A speculative call is consist of multiple\n>                          edges - indirect edge and one or more direct edges\n> @@ -3062,7 +3062,7 @@ redirect_all_calls (copy_body_data * id, basic_block bb)\n>        gimple *stmt = gsi_stmt (si);\n>        if (is_gimple_call (stmt))\n>         {\n> -         struct cgraph_edge *edge = id->dst_node->get_edge (stmt);\n> +         class cgraph_edge *edge = id->dst_node->get_edge (stmt);\n>           if (edge)\n>             {\n>               if (!id->killed_new_ssa_names)\n> @@ -4850,7 +4850,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id,\n>    hash_map<tree, tree> *st = NULL;\n>    tree return_slot;\n>    tree modify_dest;\n> -  struct cgraph_edge *cg_edge;\n> +  class cgraph_edge *cg_edge;\n>    cgraph_inline_failed_t reason;\n>    basic_block return_block;\n>    edge e;\n> @@ -5124,7 +5124,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id,\n>    if (id->src_cfun->calls_alloca && !gimple_call_noreturn_p (stmt))\n>      /* Don't do this for VLA allocations though, just for user alloca\n>         calls.  */\n> -    for (struct cgraph_edge *e = id->src_node->callees; e; e = e->next_callee)\n> +    for (class cgraph_edge *e = id->src_node->callees; e; e = e->next_callee)\n>        if (gimple_maybe_alloca_call_p (e->call_stmt)\n>           && !gimple_call_alloca_for_var_p (e->call_stmt))\n>         {\n> @@ -5672,7 +5672,7 @@ optimize_inline_calls (tree fn)\n>\n>    if (flag_checking)\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>\n>        id.dst_node->verify ();\n>\n> @@ -6568,7 +6568,7 @@ tree_function_versioning (tree old_decl, tree new_decl,\n>       within proper range in the cloned function.  */\n>    if (new_entry)\n>      {\n> -      struct cgraph_edge *e;\n> +      class cgraph_edge *e;\n>        rebuild_frequencies ();\n>\n>        new_version_node->count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count;\n> diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h\n> index aeedab0c26f..06025a15f0c 100644\n> --- a/gcc/tree-inline.h\n> +++ b/gcc/tree-inline.h\n> @@ -22,7 +22,7 @@ along with GCC; see the file COPYING3.  If not see\n>  #define GCC_TREE_INLINE_H\n>\n>\n> -struct cgraph_edge;\n> +class cgraph_edge;\n>\n>  /* Indicate the desired behavior wrt call graph edges.  We can either\n>     duplicate the edge (inlining, cloning), move the edge (versioning,\n> --\n> 2.43.0\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=NOyqZipJ;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=YiICLZzg;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=NOyqZipJ;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=YiICLZzg","sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com","sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=205.220.168.131"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fy3tQ6DrKz1yHp\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 18 Apr 2026 04:53:17 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 60BE74D108C3\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 18:53:15 +0000 (GMT)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n by sourceware.org (Postfix) with ESMTPS id 3C4DD4CCCA12\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:52:28 +0000 (GMT)","from pps.filterd (m0279865.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63HG49FR2932802\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:52:27 GMT","from mail-dy1-f198.google.com (mail-dy1-f198.google.com\n [74.125.82.198])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dkhsha24x-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 18:52:26 +0000 (GMT)","by mail-dy1-f198.google.com with SMTP id\n 5a478bee46e88-2ddd8ef5343so1193634eec.1\n for <gcc-patches@gcc.gnu.org>; Fri, 17 Apr 2026 11:52:26 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 60BE74D108C3","OpenDKIM Filter v2.11.0 sourceware.org 3C4DD4CCCA12"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 3C4DD4CCCA12","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 3C4DD4CCCA12","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776451948; cv=pass;\n b=nRYRg1mYH5j0Kl5rQbhur7wh/SM8mg7XKNdaD7f02XLIxflV/vtuAJfgNi7gyNtkr2btgVLJWbW0b2g5O8pPXa47kpCZYuI3PWmE+Yqfi7Xg54q6qp+2emAo+4+z47db//5hwWDAke+7UzC9KgAJrqaMrpYkB8iD1NF/0CW83yw=","i=1; a=rsa-sha256; t=1776451946; cv=none;\n d=google.com; s=arc-20240605;\n b=N+9Of8Y7HMZr3CeCNatIs9JT45dqQgocsAOXNdyK1yNgL+WFH1YV2FclIbZmJBdVhQ\n 8obJRtP3Iv8YwCDxF/LsijDvPNrg/I9dIlzlpMQ+lqrEB4AMFYynfBC+HliA8IzEczIq\n FjC7tkrLu4XJ+aEHbCmpFUEOZwFUeWlszMOpR8sdwZjGX4Xkjmpek03/kswm73E4xjuk\n olUBA4Bc77McVP8ZZzw9dgGEhxXhQGZlI4ps1H0IqWE4WCeuT//c9lRVmBn33YKl65R5\n /4/epgTBNWrpfsdeDaJ5qbIwxOQtJxzwEhALSNo0YLCjPMbFIpxNsFvkHblaZexzwqYR\n 3/ZQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776451948; c=relaxed/simple;\n bh=WLm5/W+awnyWK7VLIhKbHxTxx8ylkWcpalWw6TbWbPY=;\n h=DKIM-Signature:DKIM-Signature:MIME-Version:From:Date:Message-ID:\n Subject:To;\n b=WA/tTFybhrjZiXzlhqK8JsRCR/PNTptrsOy+NvWfbR7Nggxj9LJen/UHRKFw9dL4apB9UuOceGLUWYDZkFHSZ6Sy0kREjPA91q+Npy6rtXyU2Rf+fEja4SHJDec90Auz9qayFddHSmuyOOZGnu0b/Mj6HLVuN2mFdTcHFGVmnLE=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=U4BRzaj9UOoId5NOnF4ky34vG7n8pOwGoJzRQOFkoKQ=;\n fh=DG0ZxEQyojbJOuIOd/MOxKcbunKJQ5dnNBaCVPRTkp0=;\n b=RKyXnsVHTVRoBlzz7gI4ZGpmAQxOuv7clQCojNhJH+YV2Kaxr9S/mYqUUsz+8Ymph5\n a+HsMnZcSsmMl2LHRidYvxM5QMRIQbEUYLx23vPbRP1VjDgNh1h0Iqs1CMXmMu+ZqAmL\n vh8skq+3CFAYm8WqNIYvA3d1Rt3rAfJCirHq+X/nQL3PYgRa3iCcmABus+JWmA5LoBEZ\n mAyZR1YfDQniRX34lz9KYmvnDqH4kL2/mK0csukdubsVwN9I4gfSlIXj38QNXBQLVl7X\n Mtkh0vIoPLJ0vRkLKjeR2G28U0ROwoUOQl3EB1KB5y5Q8lBhSfmDPwUPfmHCdEwIXaHr\n MsTg==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n U4BRzaj9UOoId5NOnF4ky34vG7n8pOwGoJzRQOFkoKQ=; b=NOyqZipJiOu6W9dj\n 7OuUtEkNzKKWsotZucPmL4ZPFt9uCYxY5KIh5vswkAE3EBw6qP1EUJ0RdMKv2z/o\n g1B0FMXnOGziOlNdF1Bl9Ck7nX6vU/iHYfhkKnYjqiwBclhMiJ2wRZKvTcy5uGWL\n dCeYb6cxyYNjX4E+bF04rPyBTnFFqPA2uKCOE3HI62YkbfDnmHxKqXmdwJzjb+aX\n yFyVWQh/1km31/VtXnJ9mnTqn4ItIlFZmTe1Uam4/ueoNMHC8FcJtEluUGnLN+GI\n P8Kqy8qvaM8aU9RrsKK9KYwgllkQiAmT2x8KEVCAJ9xFdFvLRAzEsgXGmn4KGe9W\n 7ENDcQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776451946; x=1777056746; darn=gcc.gnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=U4BRzaj9UOoId5NOnF4ky34vG7n8pOwGoJzRQOFkoKQ=;\n b=YiICLZzgzl/n1KrRMgQgS01s3hw8d/1jzWylAJ/eDhiC+LOkKo5Ta1zFqXO30o/jED\n E0m049J4nW74oR5+uhHpPYPvXWARV57PO4r7GfS94CUU0DohZNipk8kq0BvklM2YC0Wh\n FbMkBjUoXwX/GATwivdLjc7DRya7PYrzu1lMWoOqUtdi7AT4cFaXe96ZvMB3DDgAb9s5\n d8S3e+fXSu+AkFs59Z0fiBTeADzZBStcSz13Hz7f2ys5Lsu863C9ndpfCaXSLxULdS0n\n xEAdk83aU87c1PTB6nnRbiDHM9hyBz6xzSdw/tn+qmCjHjuDKmGd/QQ1zZ7BoxCRouvx\n ru8g=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776451946; x=1777056746;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=U4BRzaj9UOoId5NOnF4ky34vG7n8pOwGoJzRQOFkoKQ=;\n b=Ylma00XRpKwcH4YxZabA5FfU21h3wH1mpyo/CqQdCRgxqdoYX4wt7Ndp8f9wkZGYWF\n gBHha32nCemukuNW3Av6mUciAIn0EeNoP1tgXDmvC2ISqutlWc9sy3684lJmGcbITuG+\n 1rwjlb8eI7Xpri+xpN876hbGuVJokjrvE2BuzVAQKoN+hrVuhI76mnbaW4KRtzhsGgly\n mAh9QAX6ZoRReSYPpfPyradIT5B6JSuVWJuEi7DMAWSMWOh0XtKQBsZDSlVEK3iz48wC\n GmG75AKwMFfe9SUxV473rZRhaCo0A/vpKqCRQJRa665Yxwf/icikShX8rdo1qCo4Tn6w\n lCEg==","X-Gm-Message-State":"AOJu0YzzThm5j/nQXeORhVohyDcJs1nIvCvUEr/BWj9ZIlBlxJ1ObWpS\n y2f/OI31ijXxnZtHU6tEBy0SqXg/lNuimNo3OhxelcEQiJvuFU0glbvSf5JoyspLX+SeaozG2bQ\n DirwXxbv3wO+DIOQNS1qQk60aGOausLbX6GZ9aE+9TsNo73ZcrBL8uoFTxgFnnr6B1WLxOhHrkX\n yEFCgmpE8AkVI3awwwdQKHcgDeHJxCUudOMmE=","X-Gm-Gg":"AeBDieu58YEAPe7pRcHzx/qxDMa6F3C+xxBNJWxZsExBB3oekwp4tOx64ZF8xVaBZDI\n eBhyfY2eDeNMzEeJWqrgRttUPw/wd/MqmEXR2NPRkHyfMa+VtslEFnUEwC5MZZEiifwJ3FxWdje\n 4wffNvsamaqktnFCLPCPQlQJXKc2OGYMrrb+UJEkRhoCfv9Yw7xLM1Hp56sQ0PIFGUFmLsujdhB\n /4xdzKuXdf5FV0=","X-Received":["by 2002:a05:7300:fb91:b0:2cb:da49:7e54 with SMTP id\n 5a478bee46e88-2e4646cbd61mr1968007eec.3.1776451944568;\n Fri, 17 Apr 2026 11:52:24 -0700 (PDT)","by 2002:a05:7300:fb91:b0:2cb:da49:7e54 with SMTP id\n 5a478bee46e88-2e4646cbd61mr1967943eec.3.1776451942415; Fri, 17 Apr 2026\n 11:52:22 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260417172506.1015169-2-torbjorn.svensson@foss.st.com>\n <20260417172621.1015209-1-torbjorn.svensson@foss.st.com>\n <20260417172621.1015209-2-torbjorn.svensson@foss.st.com>","In-Reply-To":"<20260417172621.1015209-2-torbjorn.svensson@foss.st.com>","From":"Andrew Pinski <andrew.pinski@oss.qualcomm.com>","Date":"Fri, 17 Apr 2026 11:52:10 -0700","X-Gm-Features":"AQROBzD5rJg0oixR7FiDsLrxUkwHl45AzkM92VpniO4nZNCT0afNz5xWOH5YbyQ","Message-ID":"\n <CALvbMcAOqU1z3zw3GnwN98HspWc7PirXX7YprZr-k5V_1E+DMw@mail.gmail.com>","Subject":"Re: [PATCH 02/30] Change `struct cgraph_edge` to `class cgraph_edge`\n to align tags","To":"=?utf-8?q?Torbj=C3=B6rn_SVENSSON?= <torbjorn.svensson@foss.st.com>","Cc":"gcc-patches@gcc.gnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Authority-Analysis":"v=2.4 cv=d6/FDxjE c=1 sm=1 tr=0 ts=69e2816a cx=c_pps\n a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=Um2Pa8k9VHT-vaBCBUpS:22 a=8b9GpE9nAAAA:8 a=nmSAfzy1H-2kUNtOnoMA:9\n a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10 a=bBxd6f-gb0O0v-kibOvt:22\n a=T3LWEMljR5ZiDmsYVIUa:22","X-Proofpoint-GUID":"sc_df__-AaNcA8tyEQuXaaTidK9acn7p","X-Proofpoint-ORIG-GUID":"sc_df__-AaNcA8tyEQuXaaTidK9acn7p","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDE3MDE4OCBTYWx0ZWRfXxgDNW4QuOb2/\n fc/HCxWeGih3yb4nfEgD3M4I8UaJq60KhuYlsChVgGVCaTm+l+96C+EbFkuq7ozg88J/NLi0Ear\n K0My42cZrkd8kGghifePmOAuZLnO5riezDHsMy1SeIwHduOKDn/kzrRkFiSaxoRXbr/GMFNfrfI\n FTTg/t8++ActNaVLdoeYZ0QqWgyzlF/k27lOteX6zlOpQaR+JHZqkHefDmDfIn3+1OY7HdVoBG/\n tPEl5f//mXj2735KpbRJ8NHqt/Kn98D5lYtqVyfOAMs5Zz/YPByUrZZbgEML7bdLnmbNp6QPcFo\n yBhQ0M7rYDWo1aWDNlLRP4Gs9AVmgCIJKNd0Dd5dIh+hrHF16E351t8STpZmjmKOxr3ISY92xxC\n 0CN6sY96bGO+fKnTPC07dNd11KaRunKSUBMq7T1mWSQYo8KGcWBt3Z9Ad8C1Rjtl2SOkwffJOAU\n DUKalSJ+7Jgrg68zoFg==","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-17_02,2026-04-17_04,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n impostorscore=0 phishscore=0 bulkscore=0 priorityscore=1501 malwarescore=0\n lowpriorityscore=0 adultscore=0 clxscore=1015 suspectscore=0 spamscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604170188","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]