From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,4c1892715ffb825c X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2002-06-02 04:04:33 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!193.162.153.118!news.tele.dk!not-for-mail Message-ID: <3CF9FBC1.7040701@yahoo.com> Date: Sun, 02 Jun 2002 13:04:33 +0200 From: David Rasmussen User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020412 Debian/0.9.9-6 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Exceptions in GNAT References: <3CF9FB01.2070101@yahoo.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: TDC Internet NNTP-Posting-Host: 195.215.62.2 X-Trace: 1023015873 dtext.news.tele.dk 58779 195.215.62.2 X-Complaints-To: abuse@post.tele.dk Xref: archiver1.google.com comp.lang.ada:25193 Date: 2002-06-02T13:04:33+02:00 List-Id: David Rasmussen wrote: > I am learning Ada, and in one exercise I am told to find out how large > and integer I can use on my system, before it overflows. The exercise > just tells me to add two larger and larger numbers and see when an > exception occurs. I have just compiled my program with gnatmake with no > options, and I am using gcc 3.1 . When the numbers get large enough, the > result is just a negative number because of wrap-around. Shouldn't I get > an exception, unless I turn it off? How do I compile for with most > checks for debug builds, and how do I compile with everything turned off > for performance intensive release builds? > > /David > D'oh.... This is weird: Enter two integers: 2100000000 0 The sum is 2100000000 david@amadeus-T23:~/src/Ada/Ex21$ ./sum Enter two integers: 2200000000 0 raised ADA.IO_EXCEPTIONS.DATA_ERROR : a-tiinio.adb:91 instantiated at a-inteio.ads:20 david@amadeus-T23:~/src/Ada/Ex21$ ./sum Enter two integers: 2147483648 0 raised ADA.IO_EXCEPTIONS.DATA_ERROR : a-tiinio.adb:91 instantiated at a-inteio.ads:20 david@amadeus-T23:~/src/Ada/Ex21$ ./sum Enter two integers: 2147483647 0 The sum is 2147483647 david@amadeus-T23:~/src/Ada/Ex21$ ./sum Enter two integers: 2147483647 1 The sum is-2147483648 david@amadeus-T23:~/src/Ada/Ex21$ ./sum Enter two integers: 2147483647 2 The sum is-2147483647 david@amadeus-T23:~/src/Ada/Ex21$ Sometimes there's an exception, and sometimes there isn't... What's happening?? /David