* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
@ 2014-10-08 4:51 ` ak at gcc dot gnu.org
2014-10-08 5:16 ` ak at gcc dot gnu.org
` (4 subsequent siblings)
5 siblings, 0 replies; 6+ messages in thread
From: ak at gcc dot gnu.org @ 2014-10-08 4:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
ak at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-10-08
CC| |ak at gcc dot gnu.org
Ever confirmed|0 |1
--- Comment #1 from ak at gcc dot gnu.org ---
Confirmed with trunk.
Program received signal SIGSEGV, Segmentation fault.
0x00000000008805b1 in copy_bbs (bbs=0x1e8ecc8, n=9, new_bbs=0x1e8e810,
edges=0x0, num_edges=0,
new_edges=0x0, base=0x0, after=0x7ffff6c3aa90, update_dominance=true) at
../../gcc/gcc/cfghooks.c:1335
1335 if (dom_bb->flags & BB_DUPLICATED)
(gdb) p dom_bb->flags
Cannot access memory at address 0x50
(gdb)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
2014-10-08 4:51 ` [Bug c++/63472] transaction_atomic within while loop causes ICE ak at gcc dot gnu.org
@ 2014-10-08 5:16 ` ak at gcc dot gnu.org
2014-10-08 5:37 ` ak at gcc dot gnu.org
` (3 subsequent siblings)
5 siblings, 0 replies; 6+ messages in thread
From: ak at gcc dot gnu.org @ 2014-10-08 5:16 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
--- Comment #2 from ak at gcc dot gnu.org ---
Looks like there are more problems with -fgnu-tm
I hacked csmith to generate random __transaction_atomic blocks and I got a lot
of crashes immediately. All I looked at were variants of these two:
0x8e23b7 crash_signal
../../gcc/gcc/toplev.c:340
0x92df5c copy_loops
../../gcc/gcc/tree-inline.c:2379
0x93225c copy_cfg_body
../../gcc/gcc/tree-inline.c:2583
0x93225c copy_body
../../gcc/gcc/tree-inline.c:2777
0x935ab3 tree_function_versioning(tree_node*, tree_node*, vec<ipa_replace_map*,
va_gc, vl_embed>*, bool, bitmap_head*, bool, bitmap_head*, basic_block_def*)
and
0x6d7465 expand_expr_addr_expr_1
../../gcc/gcc/expr.c:7737
0x6cd9a6 expand_expr_addr_expr
../../gcc/gcc/expr.c:7779
0x6cd9a6 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/gcc/expr.c:10604
0x6084f1 expand_normal
../../gcc/gcc/expr.h:457
0x6084f1 precompute_register_parameters
../../gcc/gcc/calls.c:832
0x6084f1 expand_call(tree_node*, rtx_def*, int)
../../gcc/gcc/calls.c:3002
0x5fbeb0 expand_builtin(tree_node*, rtx_def*, rtx_def*, machine_mode, int)
../../gcc/gcc/builtins.c:6825
0x6cdd95 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
../../gcc/gcc/expr.c:10369
0x6d751a store_expr(tree_node*, rtx_def*, int, bool)
../../gcc/gcc/expr.c:5337
0x6dc2d9 expand_assignment(tree_node*, tree_node*, bool)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
2014-10-08 4:51 ` [Bug c++/63472] transaction_atomic within while loop causes ICE ak at gcc dot gnu.org
2014-10-08 5:16 ` ak at gcc dot gnu.org
@ 2014-10-08 5:37 ` ak at gcc dot gnu.org
2014-11-23 15:25 ` paolo.carlini at oracle dot com
` (2 subsequent siblings)
5 siblings, 0 replies; 6+ messages in thread
From: ak at gcc dot gnu.org @ 2014-10-08 5:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
--- Comment #3 from ak at gcc dot gnu.org ---
Another one:
0x8e23b7 crash_signal
../../gcc/gcc/toplev.c:340
0x61be46 copy_bbs(basic_block_def**, unsigned int, basic_block_def**,
edge_def**, unsigned int, edge_def**, loop*, basic_block_def*, bool)
../../gcc/gcc/cfghooks.c:1335
0x8eaecf ipa_uninstrument_transaction
../../gcc/gcc/trans-mem.c:4093
0x8eaecf ipa_tm_scan_calls_transaction
../../gcc/gcc/trans-mem.c:4167
0x8eaecf ipa_tm_execute
../../gcc/gcc/trans-mem.c:5340
0x8eaecf execute
../../gcc/gcc/trans-mem.c:5578
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
` (2 preceding siblings ...)
2014-10-08 5:37 ` ak at gcc dot gnu.org
@ 2014-11-23 15:25 ` paolo.carlini at oracle dot com
2015-01-30 18:59 ` bjmnbraun at gmail dot com
2015-01-30 19:49 ` torvald at gcc dot gnu.org
5 siblings, 0 replies; 6+ messages in thread
From: paolo.carlini at oracle dot com @ 2014-11-23 15:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|spear at cse dot lehigh.edu |
Severity|critical |normal
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
` (3 preceding siblings ...)
2014-11-23 15:25 ` paolo.carlini at oracle dot com
@ 2015-01-30 18:59 ` bjmnbraun at gmail dot com
2015-01-30 19:49 ` torvald at gcc dot gnu.org
5 siblings, 0 replies; 6+ messages in thread
From: bjmnbraun at gmail dot com @ 2015-01-30 18:59 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
Benjamin Braun <bjmnbraun at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bjmnbraun at gmail dot com
--- Comment #5 from Benjamin Braun <bjmnbraun at gmail dot com> ---
*** Bug 64879 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug c++/63472] transaction_atomic within while loop causes ICE
[not found] <bug-63472-4@http.gcc.gnu.org/bugzilla/>
` (4 preceding siblings ...)
2015-01-30 18:59 ` bjmnbraun at gmail dot com
@ 2015-01-30 19:49 ` torvald at gcc dot gnu.org
5 siblings, 0 replies; 6+ messages in thread
From: torvald at gcc dot gnu.org @ 2015-01-30 19:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63472
--- Comment #6 from torvald at gcc dot gnu.org ---
(In reply to ak from comment #4)
> copy_bbs:
>
> (illegal code due to goto into transaction?)
>
> g_56[];
> fn1() {
> int *p_79;
> if (g_56[7])
> __transaction_atomic {
> lbl_196:
> *p_79 = 1;
> }
> else
> goto lbl_196;
> }
Yes, the goto into the transaction is illegal code.
> copy_loops:
>
> func_65() {
> __transaction_atomic {
> for (;;)
> func_65();
> }
> }
I think that technically, at least for C++, this is illegal code because you
have an infinite loop with no side effects (atomics, volatile, IO) in it. Does
this also fail when you make the recursion stop eventually?
^ permalink raw reply [flat|nested] 6+ messages in thread