https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78589
--- Comment #3 from Alexander Monakov <amonakov at gcc dot gnu.org> --- Ah, sorry if I misunderstood and got carried away. >From my investigation it looks like for the '<built-in>' issue it's just a matter of setting DECL_ABSTRACT_ORIGIN in create_omp_child_function (not sure if that's a stretch of the intended usage or not). Not sure if you're working on this bug yourself -- if not, I can regtest and submit this patch: diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 7bcaeee..53b75bb 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -2499,6 +2499,7 @@ create_omp_child_function (omp_context *ctx, bool task_copy) DECL_CONTEXT (decl) = NULL_TREE; DECL_INITIAL (decl) = make_node (BLOCK); BLOCK_SUPERCONTEXT (DECL_INITIAL (decl)) = decl; + DECL_ABSTRACT_ORIGIN (decl) = DECL_ORIGIN (current_function_decl); if (omp_maybe_offloaded_ctx (ctx)) { cgraph_node::get_create (decl)->offloadable = 1;