https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90488
--- Comment #1 from Thomas Schwinge <tschwinge at gcc dot gnu.org> --- I filed <https://github.com/OpenACC/openacc-spec/issues/186> "OpenACC Profiling Interface: callbacks branching out of an OpenACC construct/executable directive", hoping to get some aspects of this clarified/restricted. (In reply to my comment #0) > I suppose this is due to the 'GOACC_parallel_keyed' function (implementing > the OpenACC 'parallel' construct) being tagged as some kind of "leaf" > function? It's not in 'gcc/omp-builtins.def', however. But indeed, if in > 'gcc/tree-ssa-structalias.c' I disable the special handling for > 'BUILT_IN_GOACC_PARALLEL' in function 'find_func_aliases_for_builtin_call' > or 'ipa_pta_execute', then this example behaves as expected. (Tom added > this IPA-PTA handling in late 2015; CCed, in case you have any input.) What this is doing, per my superficial understanding, is "look through" the 'BUILT_IN_GOACC_PARALLEL' internal-function call, into the attached region. Thus it doesn't notice that callbacks now may by triggered by the 'GOACC_parallel_keyed' function, before and after the attached region executes.