From a linguistic point of view, this is nothing. irises unsigned intto a grade <. And it is perfectly defined to increase unsigned charso that it wraps to zero.
The fact that this code is causing something annoying is unsuccessful. But it’s not clear which rule the compiler needs to apply to discover these kinds of things.
@unwind : GCC , true, -Wtype-limits.
2: -, ( "" GCC ...)