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

--- Comment #6 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>:

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

commit r15-3315-gb748e2eed0df9e691a530a0b8faea9f673bdf2b5
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Fri Aug 30 09:40:34 2024 +0200

    c++: Allow standard attributes after closing square bracket in new-type-id
[PR110345]

    For C++ 26 P2552R3 I went through all the spots (except modules) where
    attribute-specifier-seq appears in the grammar and tried to construct
    a testcase in all those spots, for now for [[deprecated]] attribute.

    The first thing I found is that we aren't parsing standard attributes in
    noptr-new-declarator - https://eel.is/c++draft/expr.new#1

    The following patch parses it there, for the non-outermost arrays
    applies normally the attributes to the array type, for the outermost
    where we just set *nelts and don't really build an array type just
    warns that we ignore those attributes (or, do you think we should
    just build an array type in that case and just take its element type?).

    2024-08-30  Jakub Jelinek  <ja...@redhat.com>

            PR c++/110345
            * parser.cc (make_array_declarator): Add STD_ATTRS argument, set
            declarator->std_attributes to it.
            (cp_parser_new_type_id): Warn on non-ignored std_attributes on the
            array declarator which is being omitted.
            (cp_parser_direct_new_declarator): Parse standard attributes after
            closing square bracket, pass it to make_array_declarator.
            (cp_parser_direct_declarator): Pass std_attrs to
make_array_declarator
            instead of setting declarator->std_attributes manually.

            * g++.dg/cpp0x/gen-attrs-80.C: New test.
            * g++.dg/cpp0x/gen-attrs-81.C: New test.

Reply via email to