public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [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

end of thread, other threads:[~2015-01-30 19:49 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [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
2015-01-30 18:59 ` bjmnbraun at gmail dot com
2015-01-30 19:49 ` torvald at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).