On Tue, Jan 16, 2018 at 12:11:28PM +0000, Richard Sandiford wrote:
> We had:
> 
>             tree t = fold_vec_perm (type, arg1, arg2,
>                                     vec_perm_indices (sel, 2, nelts));
> 
> where fold_vec_perm takes a const vec_perm_indices &.  GCC 4.1 apparently
> required a public copy constructor:
> 
> gcc/vec-perm-indices.h:85: error: 'vec_perm_indices::vec_perm_indices(const 
> vec_perm_indices&)' is private
> gcc/fold-const.c:11410: error: within this context
> 
> even though no copy should be made here.  This patch tries to work
> around that by constructing the vec_perm_indices separately.
> 
> Tested on aarch64-linux-gnu.  OK to install?
> 
> Richard
> 
> 
> 2018-01-16  Richard Sandiford  <richard.sandif...@linaro.org>
> 
> gcc/
>       * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
>       in a separate statement.

Ok, thanks.

> Index: gcc/fold-const.c
> ===================================================================
> --- gcc/fold-const.c  2018-01-15 12:38:28.967896418 +0000
> +++ gcc/fold-const.c  2018-01-16 12:08:10.082222501 +0000
> @@ -11406,8 +11406,8 @@ fold_ternary_loc (location_t loc, enum t
>                 else /* Currently unreachable.  */
>                   return NULL_TREE;
>               }
> -           tree t = fold_vec_perm (type, arg1, arg2,
> -                                   vec_perm_indices (sel, 2, nelts));
> +           vec_perm_indices indices (sel, 2, nelts);
> +           tree t = fold_vec_perm (type, arg1, arg2, indices);
>             if (t != NULL_TREE)
>               return t;
>           }

        Jakub

Reply via email to