https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- `0.0003 - 0.0001*3.0` with -std=c++23 is done all in long double and then casted to double. Which is why b is 0 there.
pinskia at gcc dot gnu.org via Gcc-bugs Thu, 22 Feb 2024 02:08:37 -0800
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114050
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- `0.0003 - 0.0001*3.0` with -std=c++23 is done all in long double and then casted to double. Which is why b is 0 there.