https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88220
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- So the issue is that in WPA we mix: void a() __asm__("open64"); and void open64() {} Then we stream out: *open64/0 (a) @0x7ffff698f5a0 Type: function definition analyzed Visibility: externally_visible prevailing_def_ironly_exp public Address is taken. References: Referring: e/2 (addr) Read from file: open64.o Availability: overwritable Function flags: count:1073741824 (estimated locally) Called by: Calls: c/4 (1073741824 (estimated locally),1.00 per call) b/3 (1073741824 (estimated locally),1.00 per call) and in ltrans the function body of the cgraph node looks as follows: $2 = void (gdb) p debug_function(fn_decl, 0) a () { <bb 2> [local count: 1073741824]: return; } which has no calls, thus the discrepancy in cgraph edges. I think it's the same issue as PR87525. So Honza's turn.