https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103537
--- Comment #7 from Hedayat Vatankhah <hedayat.fwd at gmail dot com> --- An interesting part of the problem is that following calls: sc2.CallSamplePrivate(); sc2.CallOverloadedPrivate(4); sc2.CallOverloadedPrivate(4.0f); both before and after using MakeFake<>() calls, and the MakeFake<>() calls themselves, which are the things which actually use the PMF related code you mentioned, are working completely fine if the XXX::Call() calls are not there or doesn't crash; but those XXX::Call() functions which are expected to only use the address of wrapped function, which is handled by the linker not my code, are crashing. While something like sc2.CallSamplePrivate(), which is also calling my wrapped functions, is working fine. So, while it has something to do with what I do, it is weird and doesn't look like a simple PMF conversion error or something.