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

--- Comment #2 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:a5d34b60c949e85aa3e213872fbc42f4eee7457b

commit r14-8965-ga5d34b60c949e85aa3e213872fbc42f4eee7457b
Author: Tobias Burnus <tbur...@baylibre.com>
Date:   Tue Feb 13 20:55:26 2024 +0100

    OpenMP: Reject non-const 'condition' trait in Fortran

    OpenMP 5.0 only permits constant expressions for the 'condition' trait
    in context selectors; this is relaxed in 5.2 but not implemented. In order
    to avoid wrong code, it is now rejected.

    Additionally, in Fortran, 'condition' should not accept an integer
    expression, which is now ensured. Additionally, as 'device_num' should be
    a conforming device number, there is now a check on the value.

            PR middle-end/113904

    gcc/c/ChangeLog:

            * c-parser.cc (c_parser_omp_context_selector): Handle splitting of
            OMP_TRAIT_PROPERTY_EXPR into
OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.

    gcc/cp/ChangeLog:

            * parser.cc (cp_parser_omp_context_selector): Handle splitting of
            OMP_TRAIT_PROPERTY_EXPR into
OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.

    gcc/fortran/ChangeLog:

            * trans-openmp.cc (gfc_trans_omp_declare_variant): Handle splitting
of
            OMP_TRAIT_PROPERTY_EXPR into
OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
            * openmp.cc (gfc_match_omp_context_selector): Likewise; rejects
            non-const device_num/condition; improve diagnostic.

    gcc/ChangeLog:

            * omp-general.cc (struct omp_ts_info): Update for splitting of
            OMP_TRAIT_PROPERTY_EXPR into
OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
            * omp-selectors.h (enum omp_tp_type): Replace
            OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/gomp/declare-variant-1.f90: Change 'condition'
trait's
            argument from integer to a logical expression.
            * gfortran.dg/gomp/declare-variant-11.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-12.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-13.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-2.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-2a.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-3.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-4.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-6.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-8.f90: Likewise.
            * gfortran.dg/gomp/declare-variant-20.f90: New test.

Reply via email to