OK. So if a program sets an object to a value outside TYPE_MIN_VALUE/TYPE_MAX_VALUE, then that program is invalid for the purposes of this discussion?
Correct. Of course, it has to be the *program* that's doing the set (meaning setting a user-defined variable). If the compiler is messing up (either front- or middle-end), then this discussion becomes quite relevant.