I'm pushing the following fix that caused occasional ICEs:
gcc /home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr68714.c -O3 -c
during GIMPLE pass: reassoc
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr68714.c: In
function ‘f’:
/home/marxin/Programming/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr68714.c:6:5:
internal compiler error: Segmentation fault
6 | vec f(vec x,vec y){
| ^
0xdc7f1f crash_signal
/home/marxin/Programming/gcc/gcc/toplev.c:328
0x7ffff78b752f ???
/usr/src/debug/glibc-2.31-5.9.x86_64/signal/../sysdeps/unix/sysv/linux/x86_64/sigaction.c:0
0xac63e0 gimple_bb
/home/marxin/Programming/gcc/gcc/gimple.h:1847
0xac63e0 gsi_for_stmt(gimple*)
/home/marxin/Programming/gcc/gcc/gimple-iterator.c:613
0xf6e96f optimize_vec_cond_expr
/home/marxin/Programming/gcc/gcc/tree-ssa-reassoc.c:3954
0xf6e96f reassociate_bb
Martin
gcc/ChangeLog:
* tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with
vcond as we check for NULL pointer.
---
gcc/tree-ssa-reassoc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 2cc50f41cdd..2e67987f6c6 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -3840,7 +3840,7 @@ ovce_extract_ops (tree var, gassign **rets, bool *reti,
tree *type,
gassign *stmt = dyn_cast <gassign *> (SSA_NAME_DEF_STMT (var));
if (stmt == NULL)
return ERROR_MARK;
- if (*vcond)
+ if (vcond)
*vcond = stmt;
/* ??? If we start creating more COND_EXPR, we could perform
--
2.27.0