http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50294
--- Comment #9 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-11-19 21:35:48 UTC --- > Thus the question - what should stor-layout do with domain types > that wrap the wrong way around (i.e. are of wrong type because Ada > turns everything into sizetype instead of [s]sizetype dependent on > the Ada type "signedness")? What do you mean by "Ada turns everything into sizetype" here? AFAIK the Ada compiler behaves like the other compilers, i.e. domain types are built with /* Create a type of integers to be the TYPE_DOMAIN of an ARRAY_TYPE. MAXVAL should be the maximum value in the domain (one less than the length of the array). The maximum value that MAXVAL can have is INT_MAX for a HOST_WIDE_INT. We don't enforce this limit, that is up to caller (e.g. language front end). The limit exists because the result is a signed type and we don't handle sizes that use more than one HOST_WIDE_INT. */ tree build_index_type (tree maxval) { return build_range_type (sizetype, size_zero_node, maxval); } so are all subtypes of sizetype (gigi has create_index_type instead because it needs to have non-shared range types and lower bounds, but it's equivalent).