https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91299
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #9 from Alexander Monakov <amonakov at gcc dot gnu.org> --- I can reproduce it with gcc-10.2. Why is main 'overwritable', but foo is 'available'? cat /tmp/cchaUSjV.ltrans0.o.079i.inline ;; Function main (main, funcdef_no=0, decl_uid=4385, cgraph_uid=1, symbol_order=1) (executed once) weakdef.c:5:5: note: Inlining foo/0 to main/1 with frequency 1.00 foo/0 (foo) @0x7f51a512d168 Type: function definition analyzed Visibility: preempted_reg external public weak References: Referring: Function foo/0 is inline copy in main/1 Availability: available Unit id: 2 Function flags: count:1073741824 (estimated locally) body nonfreeing_fn Called by: main/1 (inlined) (1073741824 (estimated locally),1.00 per call) Calls: main/1 (main) @0x7f51a512d000 Type: function definition analyzed Visibility: externally_visible prevailing_def public References: Referring: Availability: overwritable Unit id: 2 Function flags: count:1073741824 (estimated locally) body only_called_at_startup nonfreeing_fn executed_once Called by: Calls: foo/0 (inlined) (1073741824 (estimated locally),1.00 per call)