https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70378

--- Comment #3 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
(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.

Reply via email to