https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79776
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jamborm at gcc dot gnu.org --- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- First list of nodes with same decl bypassing /* Nodes without a body are not interesting. Especially do not visit clones at this point for now - we get duplicate decls there for inline clones at least. */ if (!node->has_gimple_body_p () || node->global.inlined_to) continue; if (node->ultimate_alias_target () != node) continue; _ZThn8_N1C2fnEPKciPi/3 (virtual E C::_ZThn8_N1C2fnEPKciPi(const char*, int, int*)) @0x7ffff6a375c0 Type: function definition analyzed Visibility: externally_visible public virtual artificial previous sharing asm name: 21 Address is taken. Availability: available First run: 0 Function flags: body Called by: Calls: _ZN1C2fnEPKciPi/23 (inlined) (1.00 per call) (can throw external) _ZN1C2fnEPKciPi/1 (virtual E C::fn(const char*, int, int*)) @0x7ffff6a372e0 Type: function definition analyzed Visibility: externally_visible public virtual previous sharing asm name: 32 Address is taken. Availability: available First run: 0 Function flags: body indirect_call_target Called by: where the latter is 'node' (the ultimate alias target). The former is only reached through another alias chain, originating from _ZN1C2fnEPKciPi/1 (virtual E C::fn(const char*, int, int*)) @0x7ffff6a372e0 Type: function definition analyzed Visibility: externally_visible public virtual previous sharing asm name: 32 Address is taken. Referring: *.LTHUNK0/2 (alias)_ZTV1C/4 (addr)_ZThn8_N1C2fnEPKciPi/3 (addr) Availability: available First run: 0 Function flags: body indirect_call_target Called by: so it somehow walks itself with call_for_symbol_thunks_and_aliases but also the decl it uses is used for an unrelated thunks-and-aliases chain. I'm lost (cgraph bug?!)