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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Iain D Sandoe
<ia...@gcc.gnu.org>:

https://gcc.gnu.org/g:ee0736f665971446f8665a94ef597f683f8128e9

commit r14-11717-gee0736f665971446f8665a94ef597f683f8128e9
Author: Arsen Arsenovic <ar...@aarsen.me>
Date:   Tue Jul 30 13:42:56 2024 +0200

    c++: fix ICE on FUNCTION_DECLs inside coroutines [PR115906]

    When register_local_var_uses iterates a BIND_EXPRs BIND_EXPR_VARS, it
    fails to account for the fact that FUNCTION_DECLs might be present, and
    later passes it to DECL_HAS_VALUE_EXPR_P.  This leads to a tree check
    failure in DECL_HAS_VALUE_EXPR_P:

      tree check: expected var_decl or parm_decl or result_decl, have
      function_decl in register_local_var_uses

    We only care about PARM_DECL and VAR_DECL, so select only those.

    PR c++/115906 - [coroutines] missing diagnostic and ICE when co_await used
as default argument in function declaration

    gcc/cp/ChangeLog:

            PR c++/115906
            * coroutines.cc (register_local_var_uses): Only process
            PARM_DECL and VAR_DECLs.

    gcc/testsuite/ChangeLog:

            PR c++/115906
            * g++.dg/coroutines/coro-function-decl.C: New test.

    (cherry picked from commit a362c9ca4ef6585e678f899705043a9aa10dd670)
  • [Bug c++/115906] [coroutines] m... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to