Path: utzoo!attcan!uunet!ncrlnk!ncrcae!hubcap!gatech!bloom-beacon!apple!bbn!inmet!ishmael!inmet!ada-uts!stt From: stt@ada-uts Newsgroups: comp.lang.ada Subject: Re: Implicit conversion? Message-ID: <57900090@ada-uts> Date: 9 Mar 89 15:40:00 GMT References: <5678@sdcrdcf.sm.unisys.com> Lines: 18 Nf-ID: #R:sdcrdcf.sm.unisys.com:-567800:ada-uts:57900090:000:694 Nf-From: ada-uts!stt Mar 9 10:40:00 1989 W.r.t.: X := MAX_INT - MAX_INT; You are correct that formally the conversion to tiny integer takes place at the leaves of the expression, however 4.5:7 in the LRM states: The predefined operations on integer types either yield the mathematically correct result or raise the exception NUMERIC_ERROR. Hence it is perfectly legal to perform intermediate calculations with predefined operators using more accuracy than the declared type. I suspect that most Ada compilers will evaluate "static" expressions (see 4.9 for definition) with infinite precision, since they are required to evaluate all static *universal* expressions exactly. S. Tucker Taft Intermetrics, Inc. Cambridge, MA 02138