comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Instantiating package problems
Date: Mon, 4 Jan 2016 22:10:54 +0100
Date: 2016-01-04T22:10:54+01:00	[thread overview]
Message-ID: <n6en12$5jn$2@gioia.aioe.org> (raw)
In-Reply-To: f2fabc7b-a6a4-49db-85ac-d0fedf6cf95e@googlegroups.com

On 2016-01-04 21:49, Anh Vo wrote:
> On Sunday, January 3, 2016 at 4:07:30 PM UTC-8, Andrew Shvets wrote:
>> Hi Bob,
>>
>> Thanks for writing back.  This is the entire example:
>> http://pastebin.com/GEJT3WzL
>
> Just recommend to add a precondition to function Division as shown below.
 > By the way, this feature is part of latest Ada (Ada 2012). In addition,
 > you should think about adding precondition to other operations such as
 > Addition where Input1 + Input2 <= Integer'Last and Input1 + Input2 >= 
Integer'Last.
>
>    function Division(
>      Input1 : in Integer;
>      Input2 : in Integer)
>        return Integer
>     with pre => Input2 /= 0;

The correct precondition of integer division is

    Input1/Input2 in Integer'Range

Note that it precludes zero divide, provided Ada 2012 can understand it, 
according to 3.5.4 (8) it must, but I am not a language lawer.

For a 2's complement machine the offending case is

    Input1 = Integer'First
    Input2 = -1

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2016-01-04 21:10 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-03 18:40 Instantiating package problems Andrew Shvets
2016-01-03 20:27 ` Georg Bauhaus
2016-01-03 21:21   ` Andrew Shvets
2016-01-03 21:04 ` Jeffrey R. Carter
2016-01-03 21:27   ` Andrew Shvets
2016-01-03 22:39     ` Jeffrey R. Carter
2016-01-03 22:08 ` Bob Duff
2016-01-04  0:07   ` Andrew Shvets
2016-01-04  0:30     ` Andrew Shvets
2016-01-04 13:43       ` G.B.
2016-01-04 14:23       ` Brian Drummond
2016-01-04 20:49     ` Anh Vo
2016-01-04 21:10       ` Dmitry A. Kazakov [this message]
2016-01-04 22:39         ` Anh Vo
2016-01-05  1:42           ` Anh Vo
2016-01-05  7:35           ` Dmitry A. Kazakov
2016-01-06  2:46       ` Andrew Shvets
2016-01-06  8:53         ` Dmitry A. Kazakov
2016-01-06  3:30       ` Andrew Shvets
2016-01-06  4:51         ` Anh Vo
2016-01-06  4:54           ` Anh Vo
2016-01-06  5:00           ` Andrew Shvets
2016-01-06  5:07             ` Anh Vo
2016-01-07  4:41               ` Andrew Shvets
2016-01-07  5:41                 ` Anh Vo
2016-01-09 20:14                   ` Andrew Shvets
2016-01-10 19:43                     ` Andrew Shvets
2016-01-10 21:38                       ` Jeffrey R. Carter
2016-01-10 21:50                       ` Georg Bauhaus
2016-01-10 21:58                         ` Andrew Shvets
2016-01-06 13:07             ` G.B.
2016-01-07  4:42               ` Andrew Shvets
2016-01-06 14:25           ` Bob Duff
2016-01-06 23:48             ` Anh Vo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox