re PR c++/59631 (ICE using _Cilk_spawn without -fcilkplus)
Fix for PR c++/59631. +++ gcc/cp/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * parser.c (cp_parser_postfix_expression): Added a new if-statement + and replaced an existing if-statement with else-if statement. + Changed an existing error message wording to match the one from the C + parser. + +++ gcc/testsuite/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * gcc.dg/cilk-plus/cilk-plus.exp: Removed "-fcilkplus" from flags list. + * g++.dg/cilk-plus/cilk-plus.exp: Likewise. + * c-c++-common/cilk-plus/CK/spawnee_inline.c: Replaced second dg-option + with dg-additional-options. + * c-c++-common/cilk-plus/CK/varargs_test.c: Likewise. + * c-c++-common/cilk-plus/CK/steal_check.c: Likewise. + * c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise. + * c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise. + * c-c++-common/cilk-plus/CK/invalid_spawns.c: Added a dg-options tag. + * c-c++-common/cilk-plus/CK/pr59631.c: New testcase. + gcc/c/ChangeLog +2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com> + + PR c++/59631 + * c-parser.c (c_parser_postfix_expression): Replaced consecutive if + statements with if-elseif statements. + From-SVN: r206463
This commit is contained in:
parent
63124c486d
commit
9a74f20cd7
14 changed files with 73 additions and 22 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||||
|
||||
PR c++/59631
|
||||
* c-parser.c (c_parser_postfix_expression): Replaced consecutive if
|
||||
statements with if-elseif statements.
|
||||
|
||||
2014-01-06 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/57773
|
||||
|
|
|
@ -7500,7 +7500,7 @@ c_parser_postfix_expression (c_parser *parser)
|
|||
expr = c_parser_postfix_expression (parser);
|
||||
expr.value = error_mark_node;
|
||||
}
|
||||
if (c_parser_peek_token (parser)->keyword == RID_CILK_SPAWN)
|
||||
else if (c_parser_peek_token (parser)->keyword == RID_CILK_SPAWN)
|
||||
{
|
||||
error_at (loc, "consecutive %<_Cilk_spawn%> keywords "
|
||||
"are not permitted");
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||||
|
||||
PR c++/59631
|
||||
* parser.c (cp_parser_postfix_expression): Added a new if-statement
|
||||
and replaced an existing if-statement with else-if statement.
|
||||
Changed an existing error message wording to match the one from the C
|
||||
parser.
|
||||
|
||||
2014-01-08 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/59614
|
||||
|
|
|
@ -5803,7 +5803,13 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
|
|||
postfix_expression =
|
||||
cp_parser_postfix_expression (parser, false, false,
|
||||
false, false, &idk);
|
||||
if (saved_in_statement & IN_CILK_SPAWN)
|
||||
if (!flag_enable_cilkplus)
|
||||
{
|
||||
error_at (token->location, "-fcilkplus must be enabled to use"
|
||||
" %<_Cilk_spawn%>");
|
||||
cfun->calls_cilk_spawn = 0;
|
||||
}
|
||||
else if (saved_in_statement & IN_CILK_SPAWN)
|
||||
{
|
||||
error_at (token->location, "consecutive %<_Cilk_spawn%> keywords "
|
||||
"are not permitted");
|
||||
|
@ -5830,8 +5836,8 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p,
|
|||
finish_expr_stmt (sync_expr);
|
||||
}
|
||||
else
|
||||
error_at (input_location, "_Cilk_sync cannot be used without enabling "
|
||||
"Cilk Plus");
|
||||
error_at (token->location, "-fcilkplus must be enabled to use"
|
||||
" %<_Cilk_sync%>");
|
||||
cp_lexer_consume_token (parser->lexer);
|
||||
break;
|
||||
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
2014-01-09 Balaji V. Iyer <balaji.v.iyer@intel.com>
|
||||
|
||||
PR c++/59631
|
||||
* gcc.dg/cilk-plus/cilk-plus.exp: Removed "-fcilkplus" from flags list.
|
||||
* g++.dg/cilk-plus/cilk-plus.exp: Likewise.
|
||||
* c-c++-common/cilk-plus/CK/spawnee_inline.c: Replaced second dg-option
|
||||
with dg-additional-options.
|
||||
* c-c++-common/cilk-plus/CK/varargs_test.c: Likewise.
|
||||
* c-c++-common/cilk-plus/CK/steal_check.c: Likewise.
|
||||
* c-c++-common/cilk-plus/CK/spawner_inline.c: Likewise.
|
||||
* c-c++-common/cilk-plus/CK/spawning_arg.c: Likewise.
|
||||
* c-c++-common/cilk-plus/CK/invalid_spawns.c: Added a dg-options tag.
|
||||
* c-c++-common/cilk-plus/CK/pr59631.c: New testcase.
|
||||
|
||||
2014-01-09 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/59715
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
/* { dg-options "-fcilkplus" } */
|
||||
|
||||
extern int foo ();
|
||||
int bar = _Cilk_spawn foo (); /* { dg-error "may only be used inside a function" } */
|
||||
|
||||
|
|
15
gcc/testsuite/c-c++-common/cilk-plus/CK/pr59631.c
Normal file
15
gcc/testsuite/c-c++-common/cilk-plus/CK/pr59631.c
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options " " } */
|
||||
|
||||
/* Tests the errors when Cilk keywords are used without -fcilkplus. */
|
||||
|
||||
void foo()
|
||||
{
|
||||
_Cilk_spawn foo(); /* { dg-error "must be enabled to use" } */
|
||||
}
|
||||
|
||||
void foo2 ()
|
||||
{
|
||||
_Cilk_spawn foo (); /* { dg-error "must be enabled to use" } */
|
||||
_Cilk_sync; /* { dg-error "must be enabled to use" } */
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-options "-fcilkplus -w" } */
|
||||
/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-options "-fcilkplus" } */
|
||||
/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
#include <stdlib.h>
|
||||
#define DEFAULT_VALUE 30
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-options "-fcilkplus" } */
|
||||
/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
void f0(volatile int *steal_flag)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-options "-fcilkplus" } */
|
||||
/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
// #include <cilk/cilk_api.h>
|
||||
extern void __cilkrts_set_param (char *, char *);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* { dg-do run { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-options "-fcilkplus" } */
|
||||
/* { dg-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
/* { dg-additional-options "-lcilkrts" { target { i?86-*-* x86_64-*-* } } } */
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -74,12 +74,12 @@ dg-runtest [lsort [glob -nocomplain $srcdir/g++.dg/cilk-plus/CK/*.cc]] " -g -O3
|
|||
dg-finish
|
||||
|
||||
dg-init
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O2 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O3 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O2 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -O3 " " "
|
||||
dg-finish
|
||||
unset TEST_EXTRA_LIBS
|
||||
|
|
|
@ -51,13 +51,13 @@ dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -f
|
|||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -O3 -std=c99" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/AN/*.c]] " -fcilkplus -g -O0 -std=c99" " "
|
||||
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -ftree-vectorize -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -g -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -g " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O1 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -std=c99 " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O2 -ftree-vectorize " " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -g " " "
|
||||
if { [check_effective_target_lto] } {
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g -fcilkplus" " "
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/CK/*.c]] " -O3 -flto -g " " "
|
||||
}
|
||||
|
||||
dg-runtest [lsort [glob -nocomplain $srcdir/c-c++-common/cilk-plus/SE/*.c]] " -g" " "
|
||||
|
|
Loading…
Add table
Reference in a new issue