How sticky are TYPE_MIN_VALUE and TYPE_MAX_VALUE?  Is it possible to
    get rid of their effect using a NOP_EXPR, CONVERT_EXPR or
    VIEW_CONVERT_EXPR?

I don't really understand either question.  Also, as to the second,
keep in mind their role in array indexes.

    If this is impossible, the Ada front end should probably stop setting
    these fields because it assumes that it can use values outside that
    range:

    http://gcc.gnu.org/onlinedocs/gcc-4.0.0/gnat_ugn_unw/Validity-Checking.html

I don't understand what that chapter has to do with your statement.

There is an outstanding PR where Ada is using the wrong type to store
intermediate values.

A much trickier question comes up in the handling of the 'Valid attribute
because the purpose of that attribute is precisely to determine whether
a value is within the bounds of its type. But that can only be used in
very specific circumstances and should not dictate the way the type
system is used.

Reply via email to