On Fri, Jan 10, 2014 at 9:41 PM, Jakub Jelinek <ja...@redhat.com> wrote:
> Hi!
>
> split_data_refs_to_components used the name_expansions affine cache
> through determine_offset, and since my patch uses it even more often,
> but if it returns NULL, we don't free the cache and it can contain garbage
> next time we perform tree_predictive_commoning_loop.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, committed
> to trunk as obvious.  No testcase for testsuite, as it is pretty
> random if we ICE or not, e.g. stage1 f951 doesn't ICE, but stage2/3 did.

Uh.  Is this also applicable to branches?

Thanks for fixing this,
Richard.

> 2014-01-10  Jakub Jelinek  <ja...@redhat.com>
>
>         PR tree-optimization/59745
>         * tree-predcom.c (tree_predictive_commoning_loop): Call
>         free_affine_expand_cache if giving up because components is NULL.
>
> --- gcc/tree-predcom.c.jj       2014-01-07 08:48:34.000000000 +0100
> +++ gcc/tree-predcom.c  2014-01-10 10:08:04.476340865 +0100
> @@ -2447,6 +2447,7 @@ tree_predictive_commoning_loop (struct l
>    if (!components)
>      {
>        free_data_refs (datarefs);
> +      free_affine_expand_cache (&name_expansions);
>        return false;
>      }
>
>
>         Jakub

Reply via email to