http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60804
--- Comment #6 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
The following should disallow this in the C FE.
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 5653e49..cbbb272 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -5153,6 +5153,9 @@ c_parser_if_statement (c_parser *parser)
/* If the if statement contains array notations, then we expand them. */
if (flag_cilkplus && contains_array_notation_expr (if_stmt))
if_stmt = fix_conditional_array_notations (if_stmt);
+ /* But Cilk_spawn in controlling expression is invalid. */
+ if (flag_cilkplus && contains_cilk_spawn_stmt (cond))
+ error_at (loc, "%<_Cilk_spawn%> in if statement is not permitted");
add_stmt (if_stmt);
}