https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70378
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |egallager at gcc dot gnu.org See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=70336 --- Comment #4 from Eric Gallager <egallager at gcc dot gnu.org> --- (In reply to Manuel López-Ibáñez from comment #3) > (In reply to Manuel López-Ibáñez from comment #2) > > Simpler testcase: > > > > typedef unsigned int uint32_t; > > void foo(char a, uint32_t b) > > { > > b = (uint32_t)((b * 10) + (uint32_t)a); > > } > > > > Something must be removing the explicit cast or messing up the expression. > > Perhaps a duplicate of PR70336. It seems that the move to match.pd just > added more early folding that removes explicit casts. 70336 was fixed, though, and I still get a warning for this testcase...