diff options
author | Richard Biener <rguenther@suse.de> | 2018-06-15 11:08:30 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2018-06-15 11:08:30 +0000 |
commit | fa6852317327d978d4069175952109505204f6ae (patch) | |
tree | 6c97bc6f77ae853b122847e76206cd80db421f8e /gcc/tree-cfg.c | |
parent | 5b32ec103973c3b8f537c6e50fc8d954f27286de (diff) | |
download | gcc-fa6852317327d978d4069175952109505204f6ae.zip gcc-fa6852317327d978d4069175952109505204f6ae.tar.gz gcc-fa6852317327d978d4069175952109505204f6ae.tar.bz2 |
re PR tree-optimization/86159 (g++ ICE at -O1 and above on valid code: incorrect type of vector CONSTRUCTOR elements)
2018-06-15 Richard Biener <rguenther@suse.de>
PR middle-end/86159
* tree-cfg.c (gimplify_build3): Do not strip sign conversions,
leave useless conversion stripping to force_gimple_operand_gsi.
(gimplify_build2): Likewise.
(gimplify_build1): Likewise.
* g++.dg/pr86159.C: New testcase.
From-SVN: r261622
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r-- | gcc/tree-cfg.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 78d80b0..85e845f 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -8976,8 +8976,6 @@ gimplify_build3 (gimple_stmt_iterator *gsi, enum tree_code code, location_t loc = gimple_location (gsi_stmt (*gsi)); ret = fold_build3_loc (loc, code, type, a, b, c); - STRIP_NOPS (ret); - return force_gimple_operand_gsi (gsi, ret, true, NULL, true, GSI_SAME_STMT); } @@ -8992,8 +8990,6 @@ gimplify_build2 (gimple_stmt_iterator *gsi, enum tree_code code, tree ret; ret = fold_build2_loc (gimple_location (gsi_stmt (*gsi)), code, type, a, b); - STRIP_NOPS (ret); - return force_gimple_operand_gsi (gsi, ret, true, NULL, true, GSI_SAME_STMT); } @@ -9008,8 +9004,6 @@ gimplify_build1 (gimple_stmt_iterator *gsi, enum tree_code code, tree type, tree ret; ret = fold_build1_loc (gimple_location (gsi_stmt (*gsi)), code, type, a); - STRIP_NOPS (ret); - return force_gimple_operand_gsi (gsi, ret, true, NULL, true, GSI_SAME_STMT); } |