http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60146
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- decl in this case in tsubst_omp_for_iterator is i, and init is DECL_EXPR i, i has DECL_INITIAL set to the function call. RECUR on both of these will tsubst the initializer before the loop, rather than in the loop, thus init is later on NULL. For #pragma omp for we really need the initializer. I'm afraid I haven't understood fully the PR53565 fix though.