diff options
author | Richard Henderson <rth@gcc.gnu.org> | 2005-04-23 10:14:27 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2005-04-23 10:14:27 -0700 |
commit | bd08db74e39248a4fe434ee03c5256ab5b63ee47 (patch) | |
tree | 770cddb92eacfefb07d3a6c24437a30c14f1bce2 /gcc/tree-eh.c | |
parent | 670026fb25e4989b73fcb3ff4bd7ba9364b8a649 (diff) | |
download | gcc-bd08db74e39248a4fe434ee03c5256ab5b63ee47.zip gcc-bd08db74e39248a4fe434ee03c5256ab5b63ee47.tar.gz gcc-bd08db74e39248a4fe434ee03c5256ab5b63ee47.tar.bz2 |
re PR target/21099 (ICE on mmx intrinsics)
PR target/21099
* config/i386/i386.c (ix86_split_to_parts): Use proper mode when
simplifying CONST_VECTOR.
From-SVN: r98624
Diffstat (limited to 'gcc/tree-eh.c')
-rw-r--r-- | gcc/tree-eh.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 90f9061..bfac6bc 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -1920,7 +1920,12 @@ tree_could_throw_p (tree t) bool tree_can_throw_internal (tree stmt) { - int region_nr = lookup_stmt_eh_region (stmt); + int region_nr; + + if (TREE_CODE (stmt) == RESX_EXPR) + region_nr = TREE_INT_CST_LOW (TREE_OPERAND (stmt, 0)); + else + region_nr = lookup_stmt_eh_region (stmt); if (region_nr < 0) return false; return can_throw_internal_1 (region_nr); @@ -1931,8 +1936,9 @@ tree_can_throw_external (tree stmt) { int region_nr = lookup_stmt_eh_region (stmt); if (region_nr < 0) - return false; - return can_throw_external_1 (region_nr); + return tree_could_throw_p (stmt); + else + return can_throw_external_1 (region_nr); } bool |