Commit 7be9eece by Aldy Hernandez Committed by Aldy Hernandez

re PR middle-end/53008 (abort in _ITM_getTMCloneSafe)

        PR middle-end/53008
        * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
        accessed indirectly.
        (ipa_tm_create_version): Same.

From-SVN: r187887
parent 305c089a
2012-05-25 Aldy Hernandez <aldyh@redhat.com>
PR middle-end/53008
* trans-mem.c (ipa_tm_create_version_alias): Output new_node if
accessed indirectly.
(ipa_tm_create_version): Same.
2012-05-25 Uros Bizjak <ubizjak@gmail.com>
PR target/53474
......
/* { dg-do compile } */
/* { dg-options "-fgnu-tm -O" } */
void __attribute__((transaction_safe)) (*fn)(void);
static void __attribute__((transaction_safe))
foo(void)
{
}
void set_fn(void)
{
fn = foo;
}
......@@ -4328,7 +4328,8 @@ ipa_tm_create_version_alias (struct cgraph_node *node, void *data)
record_tm_clone_pair (old_decl, new_decl);
if (info->old_node->symbol.force_output)
if (info->old_node->symbol.force_output
|| ipa_ref_list_first_referring (&info->old_node->symbol.ref_list))
ipa_tm_mark_force_output_node (new_node);
return false;
}
......@@ -4381,7 +4382,8 @@ ipa_tm_create_version (struct cgraph_node *old_node)
record_tm_clone_pair (old_decl, new_decl);
cgraph_call_function_insertion_hooks (new_node);
if (old_node->symbol.force_output)
if (old_node->symbol.force_output
|| ipa_ref_list_first_referring (&old_node->symbol.ref_list))
ipa_tm_mark_force_output_node (new_node);
/* Do the same thing, but for any aliases of the original node. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment