https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97578
Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at redhat dot com, | |mjambor at suse dot cz Component|ipa |c Summary|[11 Regression] ice during |ice during IPA pass: inline |IPA pass: inline | --- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> --- What hits us here is the hack I needed to introduce to ipa_param_adjustments::modify_call which triggers materialization to make debug info code working. In this case redirection happens from tree-inline and materialization gets us back to tree-inline. Inliner is however not intended to be recursive (it uses bb->aux pointers and in this case it will use it twice). Martin, Jambor, it would be really great if we did not need to materialize. I do not see how attaching debug info to decls can work if caller is in one partition and callee in another. We could also just add a loop walking all such calls and trigger materialization before going to tree-inline to avoid the recursion problem, but still IMO debug info will get missing on the partitioning boundary. We could also just avoid the (ab)use of bb->aux and replace it by a vector here which would be also an option.