https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118499
--- Comment #17 from anlauf at gcc dot gnu.org --- A type promotion or conversion for binary operations is a real issue. While it is feasible, we should step back and draw a line what is more or less consistent with the spirit of the UNSIGNED proposal, and what isn't. I consider 10U ** 2u_1 or 10u_8 ** 19u which only use unsigned and result in unsigned as reasonable. As it is not clear what is the type of (2u * 2), or (1 + 1u), it makes sense to let the user apply a conversion. In view of this I would rather withdraw my original request, and prefer the above variant which only uses unsigned, as it does not mix types. It also avoids an explosion of cases we have to handle at runtime.