Indeed.  Ada should in this case generate

       R = (T)( (basetype)100 + (basetype)X - (basetype)X )

     i.e. carry out all arithmetic explicitly in the basetype and only for
     stores and loads use the subtype.

That is indeed required by the language and what is normally generated.
It would be valuable to see exactly who generated the bogus operation.

Reply via email to