http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60467
--- Comment #1 from Andi Kleen <andi-gcc at firstfloor dot org> --- We could add this patch to avoid the original problem: diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c index f2179dfc..a535948 100644 --- a/gcc/c-family/cilk.c +++ b/gcc/c-family/cilk.c @@ -712,8 +712,9 @@ create_cilk_wrapper (tree exp, tree *args_out) else extract_free_variables (exp, &wd, ADD_READ); pointer_map_traverse (wd.decl_map, declare_one_free_variable, &wd); - wd.block = TREE_BLOCK (exp); - if (!wd.block) + if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (TREE_CODE (exp)))) + wd.block = TREE_BLOCK (exp); + else wd.block = DECL_INITIAL (current_function_decl); However this just causes the next ICE later #1 0x00000000008a8e20 in gimplify_expr (expr_p=0x7ffff6d58bf8, pre_p=0x7fffffffd5f8, post_p=0x7fffffffd130, gimple_test_f=0x8957a2 <is_gimple_addressable(tree)>, fallback=3) at ../../gcc/gcc/gimplify.c:8359 8359 gcc_assert (fallback & fb_mayfail); (gdb) p fallback $1 = 3 (gdb) p/d fb_mayfail $2 = 4