Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
c++: init_priority and SUPPORTS_INIT_PRIORITY [PR107638]
The commit r13-3706-gd0a492faa6478c for correcting the result of __has_attribute(init_priority) causes a bootstrap failure on hppa64-hpux because it assumes SUPPORTS_INIT_PRIORITY expands to a simple constant, but on this target SUPPORTS_INIT_PRIORITY 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 this macro to statically exclude the entry for init_priority when defining the cxx_attribute_table. So instead of trying to exclude init_priority from the attribute table for sake of __has_attribute, this patch just makes __has_attribute handle init_priority specially. Bootstrapped and regtested on x86_64-pc-linux-gnu, does this look OK for trunk? Also sanity checked by artificially defining SUPPORTS_INIT_PRIORITY to 0. 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.
- Loading branch information