https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64346
--- Comment #4 from Cary Coutant <ccoutant at gcc dot gnu.org> --- I think the problem is that the decloning turns the C1 and C2 ctors into thunks, and GCC doesn't (yet) generate debug info for thunks, so when you inline the C4 into the C1 or C2, and inline that into foo, all that's left in the debug info is the inlined call to the C4 ctor. It looks like -fno-declone-ctors-dtor doesn't work around the problem because the "need_alias" flag is true, and that forces the decloning in this case. The most expedient approach might be for you to alias the C4/D4 names to the official ones when processing the profile data. Is that feasible?