From: Richard Henderson Date: Wed, 11 Feb 2015 17:04:38 +0000 (-0800) Subject: re PR sanitizer/65000 (ICE in in expand_builtin_eh_common, at except.c:2072) X-Git-Tag: releases/gcc-5.1.0~1009 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b1441be76eb4e340f324e7defb3b644e1f7a6a7;p=thirdparty%2Fgcc.git re PR sanitizer/65000 (ICE in in expand_builtin_eh_common, at except.c:2072) PR sanitize/65000 * tree-eh.c (mark_reachable_handlers): Mark source and destination regions of __builtin_eh_copy_values. From-SVN: r220626 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f05ee4a25a4..87bf089b7542 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-02-11 Richard Henderson + + PR sanitize/65000 + * tree-eh.c (mark_reachable_handlers): Mark source and destination + regions of __builtin_eh_copy_values. + 2015-02-11 Jakub Jelinek PR middle-end/65003 diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c index 159fa2bee111..3c45f37efbff 100644 --- a/gcc/tree-eh.c +++ b/gcc/tree-eh.c @@ -3859,6 +3859,17 @@ mark_reachable_handlers (sbitmap *r_reachablep, sbitmap *lp_reachablep) gimple_eh_dispatch_region ( as_a (stmt))); break; + case GIMPLE_CALL: + if (gimple_call_builtin_p (stmt, BUILT_IN_EH_COPY_VALUES)) + for (int i = 0; i < 2; ++i) + { + tree rt = gimple_call_arg (stmt, i); + HOST_WIDE_INT ri = tree_to_shwi (rt); + + gcc_assert (ri = (int)ri); + bitmap_set_bit (r_reachable, ri); + } + break; default: break; }