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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,74a56083ffbe573d X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Zoo question Date: 1996/08/15 Message-ID: #1/1 X-Deja-AN: 174380411 references: <320F16B6.6944@lmtas.lmco.com> <3210A142.2781E494@escmail.orl.mmc.com> <3211C462.19D9@lmtas.lmco.com> <3212468B.2781E494@escmail.orl.mmc.com> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-08-15T00:00:00+00:00 List-Id: In article <3212468B.2781E494@escmail.orl.mmc.com>, Ted Dennison wrote: > 2 - No exception is ever raised (Constraint checking could be disabled > for any number of reasons). True, but one assumes that checks were not suppressed. Otherwise, *anyting* could happen. > 3 - A CONSTRAINT_ERROR is raised OUTSIDE the block, upon the next attempt > to use the value of Animal_ID. (That's is what I meant by "within this > block" above). I don't see how C_E could be raised outside the block. 11.6 allows the compiler to play some games, but it does not allow the wrong handler to handle an exception. Nor does it allow an out-of-range value to be used in any way that affects the external results of the program -- that is, the compiler can re-order code to a certain extent, but it cannot put the use of a value before a range check of that value if the normal semantics requires otherwise. 11.6 was totally rewritten for Ada 95, but I don't think these particular aspects changed. - Bob