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

Reply via email to