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

--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

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

commit r13-4039-gfce38b7d13ae625301571dcd84f3774ddaa6ed04
Author: Patrick Palka <ppa...@redhat.com>
Date:   Mon Nov 14 21:28:58 2022 -0500

    c++: init_priority and SUPPORTS_INIT_PRIORITY [PR107638]

    The commit r13-3706-gd0a492faa6478c for fixing the result of
    __has_attribute(init_priority) causes a bootstrap failure on hppa64-hpux
    due to assuming the macro SUPPORTS_INIT_PRIORITY expands to a simple
    constant, but on this target the macro is defined as

      #define SUPPORTS_INIT_PRIORITY (TARGET_GNU_LD ? 1 : 0)

    (where TARGET_GNU_LD expands to something in terms of global_options)
    which means we can't use the macro to conditionally exclude the entry
    for init_priority when defining the cxx_attribute_table.

    So instead of trying to exclude init_priority from the attribute table,
    this patch just makes __has_attribute handle init_priority specially.

            PR c++/107638

    gcc/c-family/ChangeLog:

            * c-lex.cc (c_common_has_attribute): Return 1 for init_priority
            iff SUPPORTS_INIT_PRIORITY.

    gcc/cp/ChangeLog:

            * tree.cc (cxx_attribute_table): Don't conditionally exclude
            the init_priority entry.
            (handle_init_priority_attribute): Remove ATTRIBUTE_UNUSED.
            Return error_mark_node if !SUPPORTS_INIT_PRIORITY.

Reply via email to