https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104936
Bug ID: 104936 Summary: [nvptx] Handle weak decl/def distinction in common code Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: vries at gcc dot gnu.org Target Milestone: --- At docs for ASM_WEAKEN_LABEL (stream, name) we find: ... If you don’t define this macro or ASM_WEAKEN_DECL, GCC will not support weak symbols and you should not define the SUPPORTS_WEAK macro. ... However, we have: ... $ grep define.*WEAKEN gcc/config/nvptx/* $ ... but still: ... $ grep SUPPORTS_WEAK gcc/config/nvptx/* gcc/config/nvptx/nvptx.h:#define SUPPORTS_WEAK 1 ... I think an argument for the discrepancy is made here: ... /* We support weak defintions, and hence have the right ASM_WEAKEN_DECL definition. Diagnose the problem here. */ if (DECL_WEAK (decl)) error_at (DECL_SOURCE_LOCATION (decl), "PTX does not support weak declarations" " (only weak definitions)"); ... where it's my understanding that the "right ASM_WEAKEN_DECL" is meant to refer to ASM_WEAKEN_DECL not being defined. It would be nice to solve this somehow in the common code instead of deviating from prescribed target macro usage.