https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67709
--- Comment #5 from vries at gcc dot gnu.org --- The scenario is the following: During pass_omp_simd_clone, we call simd_clone_create for foo, and execute the !old_node->definition part: ... tree old_decl = old_node->decl; tree new_decl = copy_node (old_node->decl); DECL_NAME (new_decl) = clone_function_name (old_decl, "simdclone"); SET_DECL_ASSEMBLER_NAME (new_decl, DECL_NAME (new_decl)); SET_DECL_RTL (new_decl, NULL); DECL_STATIC_CONSTRUCTOR (new_decl) = 0; DECL_STATIC_DESTRUCTOR (new_decl) = 0; new_node = old_node->create_version_clone (new_decl, vNULL, NULL); if (old_node->in_other_partition) new_node->in_other_partition = 1; symtab->call_cgraph_insertion_hooks (new_node); ... The 'symtab->call_cgraph_insertion_hooks (new_node)' calls 'inline_summary_t::insert', a hook inserted during pass_ipa_inline. During execution of the hook we stumble over the fact that the new node has no 'struct function' in estimate_function_body_sizes: ... struct function *my_function = DECL_STRUCT_FUNCTION (node->decl); ... gcc_assert (my_function && my_function->cfg); ...