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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-8 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:1aafdd7c93226cb092b560462028394a82f404a2

commit r8-9990-g1aafdd7c93226cb092b560462028394a82f404a2
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Feb 14 12:56:42 2020 +0100

    backport: re PR c++/60228 (ICE using lambda in #pragma omp declare
reduction)

        Backported from mainline
        2019-11-29  Jakub Jelinek  <ja...@redhat.com>

        PR c++/60228
        * parser.c (cp_parser_omp_declare_reduction_exprs): If
        processing_template_decl, wrap the combiner or initializer
        into EXPR_STMT.
        * decl.c (start_preparsed_function): Don't start a lambda scope
        for DECL_OMP_DECLARE_REDUCTION_P functions.
        (finish_function): Don't finish a lambda scope for
        DECL_OMP_DECLARE_REDUCTION_P functions, nor cp_fold_function
        them nor cp_genericize them.
        * mangle.c (decl_mangling_context): Look through
        DECL_OMP_DECLARE_REDUCTION_P functions.
        * semantics.c (expand_or_defer_fn_1): For DECL_OMP_DECLARE_REDUCTION_P
        functions, use tentative linkage, don't keep their bodies with
        -fkeep-inline-functions and return false at the end.

        * g++.dg/gomp/openmp-simd-2.C: Don't expect bodies for
        DECL_OMP_DECLARE_REDUCTION_P functions.

        * testsuite/libgomp.c++/udr-20.C: New test.
        * testsuite/libgomp.c++/udr-21.C: New test.

Reply via email to