https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69077
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hubicka at gcc dot gnu.org, | |jakub at gcc dot gnu.org --- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That doesn't seem to be the reason for the ICE. This at least for me (x86_64-linux) ICEs on 21327 /* Make sure any inlined functions are known to be inlineable. */ 21328 gcc_checking_assert (DECL_ABSTRACT_P (decl) 21329 || cgraph_function_possibly_inlined_p (decl)); The reason why DECL_ABSTRACT_P is not set in this case is that LTO throws away DECL_ABSTRACT_ORIGIN of all decls. And the reason why cgraph_function_possibly_inlined_p is not set seems to be that DECL_POSSIBLY_INLINED isn't set. Supposedly it is not set in t1.o's mean, because it is not inlined in there, and it is set in t2.o's mean, because it has been early inlined in there. So, DECL_POSSIBLY_INLINED ideally should be ored in from all the LTO input files but that is not what is happening. So, do we need to move that flag to cgraph or duplicate it there, and make sure when merging decls from different TUs it is ored in together?