Avoid GCC 4.1 build failure in fold-const.c

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.

2018-01-16  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
	* fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
	in a separate statement.

From-SVN: r256740
This commit is contained in:
Richard Sandiford 2018-01-16 12:44:37 +00:00 committed by Richard Sandiford
parent cce6078d2b
commit 3c869ac305
2 changed files with 7 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2018-01-16 Richard Sandiford <richard.sandiford@linaro.org>
* fold-const.c (fold_ternary_loc): Construct the vec_perm_indices
in a separate statement.
2018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 2018-01-16 Richard Sandiford <richard.sandiford@linaro.org>
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses): * tree-vect-data-refs.c (vect_analyze_data_ref_accesses):

View File

@ -11406,8 +11406,8 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type,
else /* Currently unreachable. */ else /* Currently unreachable. */
return NULL_TREE; return NULL_TREE;
} }
tree t = fold_vec_perm (type, arg1, arg2, vec_perm_indices indices (sel, 2, nelts);
vec_perm_indices (sel, 2, nelts)); tree t = fold_vec_perm (type, arg1, arg2, indices);
if (t != NULL_TREE) if (t != NULL_TREE)
return t; return t;
} }