On Mon, 2006-02-20 at 23:00 +0100, Richard Guenther wrote: > On 2/20/06, Richard Kenner <[EMAIL PROTECTED]> wrote: > > 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. > > > > Indeed - I can very well imagine fold or ccp stripping off such type > conversions > in some case, which would lead to wrong code by VRP. Again, so can I, so it's a concern. However, I'm pretty sure that's not what's happening here. If you disable the code to strip away useless type conversions you still get the same problem.
jeff