https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88733
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- error_mark_node is used for the cases where the outlined region doesn't get passed the corresponding size in any way. See https://gcc.gnu.org/ml/gcc-patches/2018-05/msg01778.html and the discussions in that thread. I have a newer version of that patch which fixes this ICE too, but from what I remember at least back in November where I've updated the patch it broke some Fortran VLA testcases, so I'll need to have a closer look.