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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpola...@gcc.gnu.org>:

https://gcc.gnu.org/g:4c7009735f73f59c9a635d79c048c8981310e331

commit r15-1951-g4c7009735f73f59c9a635d79c048c8981310e331
Author: Marek Polacek <pola...@redhat.com>
Date:   Thu Jun 27 16:39:29 2024 -0400

    c: ICE on invalid with attribute optimize [PR115549]

    I had this PR in my open tabs so why not go ahead and fix it.

    decl_attributes gets last_decl, the last already pushed declaration,
    to be used in common_handle_aligned_attribute.  In C++, we look up
    the decl via find_last_decl, which returns NULL_TREE if it finds
    a decl that had not been declared.  In C, we look up the decl via
    lookup_last_decl which returns error_mark_node rather than NULL_TREE
    in that case.

    The error_mark_node causes a crash in common_handle_aligned_attribute.
    We can fix this on the C FE side like in the patch below.

            PR c/115549

    gcc/c/ChangeLog:

            * c-decl.cc (c_decl_attributes): If lookup_last_decl returns
            error_mark_node, use NULL_TREE as last_decl.

    gcc/testsuite/ChangeLog:

            * c-c++-common/attr-aligned-2.c: New test.

Reply via email to