public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/60197] New: ICE with _Cilk_spawn in expression
@ 2014-02-14 15:25 reichelt at gcc dot gnu.org
  2014-02-14 15:27 ` [Bug c/60197] " reichelt at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: reichelt at gcc dot gnu.org @ 2014-02-14 15:25 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

            Bug ID: 60197
           Summary: ICE with _Cilk_spawn in expression
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: reichelt at gcc dot gnu.org

The following valid(?) code snippet (compiled with "-fcilkplus") triggers
an ICE on trunk:

===========================================
int foo()
{
  return (_Cilk_spawn foo()) + 1;
}
===========================================

gimplification failed:
 <statement_list 0x7f6dc2014420
    type <void_type 0x7f6dc1eed000 void VOID
        align 8 symtab 0 alias set -1 canonical type 0x7f6dc1eed000
        pointer_to_this <pointer_type 0x7f6dc1eed0a8>>
    head (nil) tail (nil) stmts
>
bug.c: In function 'foo':
bug.c:9:30: internal compiler error: gimplification failed
   return (_Cilk_spawn foo()) + 1;
                              ^
0x84252a gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:8356
0x8411dc gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:8135
0x83e6fb gimplify_modify_expr
        ../../gcc/gcc/gimplify.c:4507
0x84058b gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:7448
0x844726 gimplify_stmt(tree_node**, gimple_statement_base**)
        ../../gcc/gcc/gimplify.c:5341
0x842c1e gimplify_and_add
        ../../gcc/gcc/gimplify.c:384
0x842c1e gimplify_return_expr
        ../../gcc/gcc/gimplify.c:1241
0x842c1e gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:7695
0x844726 gimplify_stmt(tree_node**, gimple_statement_base**)
        ../../gcc/gcc/gimplify.c:5341
0x840cd6 gimplify_and_add
        ../../gcc/gcc/gimplify.c:384
0x840cd6 gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:7785
0x844726 gimplify_stmt(tree_node**, gimple_statement_base**)
        ../../gcc/gcc/gimplify.c:5341
0x84084b gimplify_statement_list
        ../../gcc/gcc/gimplify.c:1412
0x84084b gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:7863
0x844726 gimplify_stmt(tree_node**, gimple_statement_base**)
        ../../gcc/gcc/gimplify.c:5341
0x84542f gimplify_bind_expr
        ../../gcc/gcc/gimplify.c:1079
0x84029e gimplify_expr(tree_node**, gimple_statement_base**,
gimple_statement_base**, bool (*)(tree_node*), int)
        ../../gcc/gcc/gimplify.c:7645
0x844726 gimplify_stmt(tree_node**, gimple_statement_base**)
        ../../gcc/gcc/gimplify.c:5341
0x845f69 gimplify_body(tree_node*, bool)
        ../../gcc/gcc/gimplify.c:8555
0x846546 gimplify_function_tree(tree_node*)
        ../../gcc/gcc/gimplify.c:8708
Please submit a full bug report, [etc.]


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
@ 2014-02-14 15:27 ` reichelt at gcc dot gnu.org
  2014-02-17 15:48 ` mpolacek at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: reichelt at gcc dot gnu.org @ 2014-02-14 15:27 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

Volker Reichelt <reichelt at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
                 CC|                            |bviyer at gcc dot gnu.org
      Known to fail|                            |4.9.0

--- Comment #1 from Volker Reichelt <reichelt at gcc dot gnu.org> ---
Balaji, this is your domain, would you mind having a look?


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
  2014-02-14 15:27 ` [Bug c/60197] " reichelt at gcc dot gnu.org
@ 2014-02-17 15:48 ` mpolacek at gcc dot gnu.org
  2014-02-17 19:20 ` reichelt at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2014-02-17 15:48 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |ice-on-invalid-code
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2014-02-17
                 CC|                            |mpolacek at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |mpolacek at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed.  I believe the testcase is invalid as _Cilk_spawn can't be in a
return statement.  I have a patch.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
  2014-02-14 15:27 ` [Bug c/60197] " reichelt at gcc dot gnu.org
  2014-02-17 15:48 ` mpolacek at gcc dot gnu.org
@ 2014-02-17 19:20 ` reichelt at gcc dot gnu.org
  2014-02-17 20:26 ` mpolacek at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: reichelt at gcc dot gnu.org @ 2014-02-17 19:20 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

--- Comment #3 from Volker Reichelt <reichelt at gcc dot gnu.org> ---
Well, the code also crashes, if I move it out of the return statement:

=====================================
int foo()
{
  int i = (_Cilk_spawn foo()) + 1;
  return i;
}
=====================================


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2014-02-17 19:20 ` reichelt at gcc dot gnu.org
@ 2014-02-17 20:26 ` mpolacek at gcc dot gnu.org
  2014-03-06 13:42 ` mpolacek at gcc dot gnu.org
  2014-03-06 13:43 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2014-02-17 20:26 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

--- Comment #4 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Ah, right, similarly for:

int
foo (void)
{
  int i;
  i = (_Cilk_spawn foo ()) + 1;
  return i;
}

I don't know whether these are valid.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2014-02-17 20:26 ` mpolacek at gcc dot gnu.org
@ 2014-03-06 13:42 ` mpolacek at gcc dot gnu.org
  2014-03-06 13:43 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2014-03-06 13:42 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Author: mpolacek
Date: Thu Mar  6 13:41:46 2014
New Revision: 208382

URL: http://gcc.gnu.org/viewcvs?rev=208382&root=gcc&view=rev
Log:
    PR c/60197
c-family/
    * cilk.c (contains_cilk_spawn_stmt): New function.
    (contains_cilk_spawn_stmt_walker): Likewise.
    (recognize_spawn): Give error on invalid use of _Cilk_spawn.
    * c-common.h (contains_cilk_spawn_stmt): Add declaration.
c/
    * c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
    of checking tree code.
cp/
    * typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
    of checking tree code.
testsuite/
    * c-c++-common/cilk-plus/CK/pr60197.c: New test.
    * c-c++-common/cilk-plus/CK/pr60197-2.c: New test.


Added:
    trunk/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60197-2.c
    trunk/gcc/testsuite/c-c++-common/cilk-plus/CK/pr60197.c
Modified:
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.h
    trunk/gcc/c-family/cilk.c
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/typeck.c
    trunk/gcc/testsuite/ChangeLog


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [Bug c/60197] ICE with _Cilk_spawn in expression
  2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2014-03-06 13:42 ` mpolacek at gcc dot gnu.org
@ 2014-03-06 13:43 ` mpolacek at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2014-03-06 13:43 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60197

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |4.9.0

--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed.


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-03-06 13:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-14 15:25 [Bug c/60197] New: ICE with _Cilk_spawn in expression reichelt at gcc dot gnu.org
2014-02-14 15:27 ` [Bug c/60197] " reichelt at gcc dot gnu.org
2014-02-17 15:48 ` mpolacek at gcc dot gnu.org
2014-02-17 19:20 ` reichelt at gcc dot gnu.org
2014-02-17 20:26 ` mpolacek at gcc dot gnu.org
2014-03-06 13:42 ` mpolacek at gcc dot gnu.org
2014-03-06 13:43 ` mpolacek 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).