https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101193
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu.org --- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Martin Liška from comment #1) > Confirmed, we have quite some similar issues. It's not related to bitfields > but to fact that the following expression is split among multiple lines: > > return in.bfval.f0 | (in.bfval.f1 << 8) | (in.bfval.f2 << 16) | (in.bfval.f3 > << 24); Actually I suspect it is more related to bitfields and spread across multiple lines. There is an optimization done early (before GCOV) in fold-const which combines the above to use and afterwards. I have a few set of patches which allows to get rid of most of the optimization in fold-const dealing with this but not all; This is something which I am going to work towards for GCC 12 but after the current phiopt work.