https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110137
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- But replacing operator new is a global property of the program. It seems to me that any translation unit claiming that operator new is sane must imply that it's sane globally. It doesn't make sense for a function assuming A is true to be inlined into a function assuming A is false, when A will actually be the same for both.