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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tobias Burnus <bur...@gcc.gnu.org>:

https://gcc.gnu.org/g:8268c8256dd430174e89142be9ee77b036d6310d

commit r15-7595-g8268c8256dd430174e89142be9ee77b036d6310d
Author: Tobias Burnus <tbur...@baylibre.com>
Date:   Mon Feb 17 22:52:34 2025 +0100

    OpenMP/Fortran: extend 'adjust_args' clause, fixes for it and declare
variant [PR115271]

    On the extension side, it implements OpenMP 6.0's numeric values/ranges for
    the adjust_args arguments, including 'omp_num_args'. And it adds parser
    support for need_device_addr. It also implements the post-OpenMP-6.0
    clarification of OpenMP spec Issue #4443 regarding type(c_ptr) with
    dimension being invalid for need_device_ptr.

    To be done: Adding full support for need_device_addr (optional, array
    descriptor, ...).

    On the invalid side, it removed a bogus c_ptr check that went through
    all adjust_args without checking for need_device_ptr and the current scope.

    And it finally also processes 'declare variant' in an INTERFACE block,
    which is part of PR115271, but it does not handle .mod file yet - the
    main issue tracked in that PR.

            PR fortran/115271

    gcc/fortran/ChangeLog:

            * gfortran.h (gfc_omp_namelist): Change need_device_ptr to adj_args
            union and add more flags.
            * openmp.cc (gfc_match_omp_declare_variant,
            gfc_resolve_omp_declare): For adjust_args, handle need_device_addr
            and numeric values/ranges besides dummy argument names.
            (resolve_omp_dispatch): Remove bogus a adjust_args check.
            * trans-decl.cc (gfc_handle_omp_declare_variant): New.
            (gfc_generate_module_vars, gfc_generate_function_code): Call it.
            * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle numeric
            values/ranges besides dummy argument names.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/gomp/adjust-args-1.f90: Update dg-.* expectations.
            * gfortran.dg/gomp/adjust-args-2.f90: Likewise.
            * gfortran.dg/gomp/adjust-args-2a.f90: Likewise.
            * gfortran.dg/gomp/adjust-args-3.f90: Likewise.
            * gfortran.dg/gomp/adjust-args-4.f90: Remove array from c_ptr.
            * gfortran.dg/gomp/adjust-args-5.f90: Likewise.
            * gfortran.dg/gomp/adjust-args-11.f90: Likewise. Add check that
            INTERFACE is now handled in subroutines and in modules.
            * gfortran.dg/gomp/adjust-args-13.f90: New test.
            * gfortran.dg/gomp/adjust-args-14.f90: New test.
            * gfortran.dg/gomp/adjust-args-15.f90: New test.
            * gfortran.dg/gomp/declare-variant-21.f90: New test.
  • [Bug fortran/115271] [OpenMP] D... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to