https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111245
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yes - modref:
kills:
Parm 0 param offset:0 offset:0 size:32 max_size:32
from
<bb 2> [local count: 1073741824]:
*x_4(D) = always_throws ();
not realizing the assignment might not take place. I think there is a simple
bug in modref_access_analysis::analyze_store, testing fix.
diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
index f1d88abf3cf..d3e510195b5 100644
--- a/gcc/ipa-modref.cc
+++ b/gcc/ipa-modref.cc
@@ -1753,8 +1753,7 @@ modref_access_analysis::analyze_store (gimple *stmt,
tree, tree op, void *data)
t->record_access_lto (t->m_summary_lto->stores, &r, a);
if (t->m_always_executed
&& a.useful_for_kill_p ()
- && (!cfun->can_throw_non_call_exceptions
- || !stmt_could_throw_p (cfun, stmt)))
+ && !stmt_could_throw_p (cfun, stmt))
{
if (dump_file)
fprintf (dump_file, " - Recording kill\n");