[Bug lto/67709] ICE: in estimate_function_body_sizes, at ipa-inline-analysis.c:2489 on x86_64-apple-darwin*
vries at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Feb 6 10:50:00 GMT 2016
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);
...
More information about the Gcc-bugs
mailing list