[Bug fortran/122306] [OpenMP] Metadirective with function call in context selector rejected

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Oct 17 08:59:28 GMT 2025


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122306

--- Comment #1 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Solution:
* Split the checking part from the parsing part and move it to
  the resolving part.

* In the resolving part - at least for metadirectives -
  we probably want to directly create a 'tree' from the
  selector (→ gfc_trans_omp_set_selector)
  as this permits calling omp_check_context_selector
  + omp_context_selector_matches

The latter than permits to remove never-matching cases
like 'implementation({vendor("not-gnu")}',
'user={condition(complex-but-constant-eval-expr)}'
etc. - also to handle PR120180 properly.

To handle the last bullet point and the remark,
some tweaking might be required to remove
unreachable branches before fully evaluating the
contained body - instead of the simple tree walk
during resolution.


More information about the Gcc-bugs mailing list