From 3c869ac3059f5201d6928ec84d5173114e37dfd7 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 16 Jan 2018 12:44:37 +0000 Subject: [PATCH] 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 gcc/ * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices in a separate statement. From-SVN: r256740 --- gcc/ChangeLog | 5 +++++ gcc/fold-const.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f83d351942a..99ea694ffcd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-01-16 Richard Sandiford + + * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices + in a separate statement. + 2018-01-16 Richard Sandiford * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): diff --git a/gcc/fold-const.c b/gcc/fold-const.c index f3749db7ed6..5cf20521daf 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -11406,8 +11406,8 @@ fold_ternary_loc (location_t loc, enum tree_code code, tree type, 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; } -- 2.30.2