https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103192
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- For me, all I can see is that clearly at runtime omp_add_variable is called with pctx NULL despite the if (pctx) guard around it and that until threadfull2 I was seeing a guarding condition in the IL that ensured that (either test of the SSA_NAME passed to first arg of omp_add_variable later against 0, or in some cases/some revisions something like: temp = code == OMP_TARGET ? outer_ctx : ctx; ... if (code != OMP_TARGET) goto bbn; if (outer_ctx != 0) goto bbn; else goto somewhere_else; bbn: omp_add_variable (temp, ...); which is also fine, as ctx is guaranteed to be non-NULL.