https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108042
Bug ID: 108042 Summary: [10/11/12/13 Regression] weakref on an extern decl is incorrectly ignored Product: gcc Version: 13.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- From: https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Common-Function-Attributes.html#index-weakref-function-attribute Without a target given as an argument to weakref or to alias, weakref is equivalent to weak (in that case the declaration may be extern). Testcase: ``` void KNOWNNOTOBEAFUNCTION(void) __attribute__((weakref)); int main() { if (KNOWNNOTOBEAFUNCTION) __builtin_abort(); else return 0; } ``` This should pass.