https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93217
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |redi at gcc dot gnu.org --- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- Ok, I screw up parenthesis in IPA inliner. I've got a patch for that. But still, the test-case should not be sensitive to an inlining decision. The problematic version does some inlining of: Inlining _Tp std::__atomic_impl::__fetch_add_flt(_Tp*, std::__atomic_impl::_Val<_Tp>, std::memory_order) [with _Tp = long double]/404 size 27. Called once from void test03()/285 887 insns. Inlined into void test03()/285 which now has 904 size Inlining _Tp std::__atomic_impl::__fetch_add_flt(_Tp*, std::__atomic_impl::_Val<_Tp>, std::memory_order) [with _Tp = long double]/404 size 27. Called once from void test03()/285 904 insns. Inlined into void test03()/285 which now has 921 size Inlining _Tp std::__atomic_impl::__sub_fetch_flt(_Tp*, std::__atomic_impl::_Val<_Tp>) [with _Tp = double]/393 size 21. Called once from void test02()/281 733 insns. Inlined into void test02()/281 which now has 747 size Inlining _Tp std::__atomic_impl::__add_fetch_flt(_Tp*, std::__atomic_impl::_Val<_Tp>) [with _Tp = double]/392 size 21. Called once from void test02()/281 747 insns. Inlined into void test02()/281 which now has 761 size Can you please Jonathan take a look what happens?