https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103328

--- Comment #16 from Richard Biener <rguenth at gcc dot gnu.org> ---
And

static void
verify_scope_blocks (tree block, tree supercontext)
{
  gcc_assert (BLOCK_SUPERCONTEXT (block) == supercontext);
  for (tree t = BLOCK_SUBBLOCKS (block); t; t = BLOCK_CHAIN (t))
    verify_scope_blocks (t, block);
}

with checking inside gimplify_function_tree

  verify_scope_blocks (DECL_INITIAL (current_function_decl),
                       current_function_decl);

ICEs first with

#1  0x00000000013ca52a in verify_scope_blocks (block=<block 0x7ffff63cacc0>, 
    supercontext=<block 0x7ffff63cad20>)
    at /home/rguenther/src/gcc3/gcc/gimplify.c:16044
16044     gcc_assert (BLOCK_SUPERCONTEXT (block) == supercontext);
gdb) p cfun->decl
$1 = <function_decl 0x7ffff63b5600 io_fiber>
(gdb) p
block->block.supercontext->block.supercontext->block.supercontext->block.supercontext
$12 = <tree 0x0>

possibly 'block' was added into another function, but it roots at NULL...

somehow all the BLOCK setup is done in poplevel() but I can't see what's wrong.

Reply via email to