> Basically with the way Ada's setting of TYPE_MIN_VALUE/TYPE_MAX_VALUE > effectively makes them useless as we can not rely on them to > actually reflect the set of values allowed in an object.
Sorry, but why are you saying "we can not rely on them to actually reflect the set of values allowed in an object"? I think we can. My understanding is that the only subtlety with Ada is the TYPE_PRECISION thing, as you've written in your patch: + /* Ada creates sub-types where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not + cover the entire range of values allowed by TYPE_PRECISION. + + We do not want to optimize away conversions to such types. Long + term I'd rather see the Ada front-end fixed. */ The obvious question would then be, why bother with TYPE_MIN_VALUE and TYPE_MAX_VALUE if they can be directly deduced from TYPE_PRECISION and TYPE_UNSIGNED? How do you represent subtypes with non-canonical bounds? -- Eric Botcazou