aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2021-04-27 18:30:36 +0100
committerRichard Sandiford <richard.sandiford@arm.com>2021-04-27 18:30:36 +0100
commitd0a57b030f1c7df33c6bc3c661d16c9cb79e96dd (patch)
treef795bc6ca70c9a3e42e8ec329abb66a32579b101 /gcc/gimple.c
parent2ae2a45c287d254c2890feff2cca46ed2ddb06ca (diff)
downloadgcc-d0a57b030f1c7df33c6bc3c661d16c9cb79e96dd.zip
gcc-d0a57b030f1c7df33c6bc3c661d16c9cb79e96dd.tar.gz
gcc-d0a57b030f1c7df33c6bc3c661d16c9cb79e96dd.tar.bz2
Fix handling of VEC_COND_EXPR trap tests [PR100284]
Now that VEC_COND_EXPR has normal unnested operands, operation_could_trap_p can treat it like any other expression. This fixes many testsuite ICEs for SVE, but it turns out that none of the tests in gcc.target/aarch64/sve were affected. Anyone testing on non-SVE aarch64 therefore wouldn't have seen it. gcc/ PR middle-end/100284 * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test. * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather than asserting on it. gcc/testsuite/ PR middle-end/100284 * gcc.target/aarch64/sve/pr81003.c: New test.
Diffstat (limited to 'gcc/gimple.c')
-rw-r--r--gcc/gimple.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/gcc/gimple.c b/gcc/gimple.c
index d067656..f1044e9 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -2161,9 +2161,6 @@ gimple_could_trap_p_1 (gimple *s, bool include_mem, bool include_stores)
/* For COND_EXPR only the condition may trap. */
if (op == COND_EXPR)
return tree_could_trap_p (gimple_assign_rhs1 (s));
- /* A VEC_COND_EXPR cannot trap. */
- else if (op == VEC_COND_EXPR)
- return false;
/* For comparisons we need to check rhs operand types instead of rhs type
(which is BOOLEAN_TYPE). */