summaryrefslogtreecommitdiff
path: root/gcc/tree-eh.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r--gcc/tree-eh.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 21c3a1c3815..f15fe099142 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -1688,9 +1688,11 @@ tree_could_trap_p (tree expr)
case IMAGPART_EXPR:
case BIT_FIELD_REF:
t = get_base_address (expr);
- return !t || TREE_CODE (t) == INDIRECT_REF;
+ return !t || tree_could_trap_p (t);
case INDIRECT_REF:
+ return (TREE_THIS_NOTRAP (expr) == false);
+
case TRUNC_DIV_EXPR:
case CEIL_DIV_EXPR:
case FLOOR_DIV_EXPR: