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

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

commit r15-9326-g2d7e1d6e40a13a5f160b584336795b80f193ec3b
Author: Tobias Burnus <tbur...@baylibre.com>
Date:   Wed Apr 9 08:21:19 2025 +0200

    Fortran: Add code gen for do,concurrent's LOCAL/LOCAL_INIT [PR101602]

    Implement LOCAL and LOCAL_INIT; we locally replace the tree declaration by
    a local declaration of the outer variable. The 'local_init' then assigns
    the value at the beginning of each loop iteration from the outer
    declaration.

    Note that the current implementation does not handle LOCAL with types that
    have a default initializer and LOCAL/LOCAL_INIT for assumed-shape arrays;
    this is diagnosed with a sorry error.

            PR fortran/101602

    gcc/fortran/ChangeLog:

            * resolve.cc (resolve_locality_spec): Remove 'sorry,
unimplemented'.
            * trans-stmt.cc (struct symbol_and_tree_t): New.
            (gfc_trans_concurrent_locality_spec): New.
            (gfc_trans_forall_1): Call it; update to handle local and
local_init.
            * trans-decl.cc (gfc_start_saved_local_decls,
            gfc_stop_saved_local_decls): New; moved code from ...
            (gfc_process_block_locals): ... here. Call it.
            * trans.h (gfc_start_saved_local_decls,
            gfc_stop_saved_local_decls): Declare.

    gcc/testsuite/ChangeLog:

            * gfortran.dg/do_concurrent_8_f2023.f90: Update for removed 'sorry,
            unimplemented'.
            * gfortran.dg/do_concurrent_9.f90: Likewise.
            * gfortran.dg/do_concurrent_all_clauses.f90: Likewise.
            * gfortran.dg/do_concurrent_local_init.f90: Likewise.
            * gfortran.dg/do_concurrent_locality_specs.f90: Likewise.
            * gfortran.dg/do_concurrent_11.f90: New test.
            * gfortran.dg/do_concurrent_12.f90: New test.
            * gfortran.dg/do_concurrent_13.f90: New test.
            * gfortran.dg/do_concurrent_14.f90: New test.
            * gfortran.dg/do_concurrent_15.f90: New test.
  • [Bug fortran/101602] [F2018] lo... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to