https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48826
--- Comment #11 from baoshan <pangbw at gmail dot com> --- And I don't thing it is the best place to fix this bug in function try_split(). Why not fix it at where the ICE occurs? It is just the wrong expectation from function dwarf2out_var_location(). Why not just look forward further if the 'prev'is not what we want? I like to add this code before gcc_assert() to fix this issue: while(prev && !CALL_P(prev) && !(GET_CODE (PATTERN (prev)) == SEQUENCE && CALL_P (XVECEXP (PATTERN (prev), 0, 0)))){ gcc_assert(NONJUMP_INSN_P (prev)); prev = prev_real_insn (prev); }