This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Fix possible typo in lto-cgraph.c


On Thu, May 1, 2014 at 4:50 PM, Richard Sandiford
<rsandifo@linux.vnet.ibm.com> wrote:
> bootstrap-asan failed on wide-int from what looks like a typo in
> compute_ltrans_boundary.  The first loop uses the function-wide "node"
> variable while the second loop uses a local "vnode" variable.  The problem
> was that the second loop also had a reference to "node".
>
> The patch below gets me past the boostrap failure on x86_64-linux-gnu.
> OK to install?

Indeed looks like a typo.  Thus, ok.

Note that a more convincing thing than regular bootstrap/test is to do
a simple LTO bootstrap (--with-build-config=bootstrap-lto --enable-languages=c).
That excercises the LTO machinery a lot more than the few testcases we have.

Thanks,
Richard.

> Thanks,
> Richard
>
>
> gcc/
>         * lto-cgraph.c (compute_ltrans_boundary): Make node variables local
>         to their respective blocks.  Fix inadvertent use of "node".
>
> Index: gcc/lto-cgraph.c
> ===================================================================
> --- gcc/lto-cgraph.c    2014-04-28 15:33:50.239606407 +0100
> +++ gcc/lto-cgraph.c    2014-05-01 15:39:42.317120147 +0100
> @@ -770,7 +770,6 @@ add_references (lto_symtab_encoder_t enc
>  lto_symtab_encoder_t
>  compute_ltrans_boundary (lto_symtab_encoder_t in_encoder)
>  {
> -  struct cgraph_node *node;
>    struct cgraph_edge *edge;
>    int i;
>    lto_symtab_encoder_t encoder;
> @@ -785,7 +784,7 @@ compute_ltrans_boundary (lto_symtab_enco
>    for (lsei = lsei_start_function_in_partition (in_encoder);
>         !lsei_end_p (lsei); lsei_next_function_in_partition (&lsei))
>      {
> -      node = lsei_cgraph_node (lsei);
> +      struct cgraph_node *node = lsei_cgraph_node (lsei);
>        add_node_to (encoder, node, true);
>        lto_set_symtab_encoder_in_partition (encoder, node);
>        add_references (encoder, &node->ref_list);
> @@ -809,7 +808,7 @@ compute_ltrans_boundary (lto_symtab_enco
>        if (DECL_ABSTRACT_ORIGIN (vnode->decl))
>         {
>           varpool_node *origin_node
> -         = varpool_get_node (DECL_ABSTRACT_ORIGIN (node->decl));
> +           = varpool_get_node (DECL_ABSTRACT_ORIGIN (vnode->decl));
>           lto_set_symtab_encoder_in_partition (encoder, origin_node);
>         }
>      }
> @@ -836,7 +835,7 @@ compute_ltrans_boundary (lto_symtab_enco
>    for (lsei = lsei_start_function_in_partition (encoder);
>         !lsei_end_p (lsei); lsei_next_function_in_partition (&lsei))
>      {
> -      node = lsei_cgraph_node (lsei);
> +      struct cgraph_node *node = lsei_cgraph_node (lsei);
>        for (edge = node->callees; edge; edge = edge->next_callee)
>         {
>           struct cgraph_node *callee = edge->callee;
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]