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 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,23f57930ddc13e1c,start X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.nethere.com!news.nethere.com.POSTED!not-for-mail NNTP-Posting-Date: Wed, 26 Sep 2007 08:21:57 -0500 Newsgroups: comp.lang.ada Subject: Missing Index Value in Array Aggregate From: csampson@inetworld.net (Charles H. Sampson) Date: Wed, 26 Sep 2007 06:21:57 -0700 Message-ID: <1i50iqb.14r2zb11w8eyc2N%csampson@inetworld.net> User-Agent: MacSOUP/2.4.6 X-Usenet-Provider: http://www.giganews.com NNTP-Posting-Host: 75.33.205.69 X-Trace: sv3-dvzA5uC6VnPM0UnT2CvWbUpjtnhRabTOPX5d1bIAfvy69GOfk8RZTfvsvaAZJJWs3BI329uHOWaAk7h!GJzZWKInkZ9Oq7eumGAPodCyMdz4koQ4DSPsLvq5MbsAEaBY+fF5zEvD+tWpxKrpDKgNg0ED/w1U!tybp5K0BVT3uPrZtHGfSjql7uh6Qjw== X-Complaints-To: abuse@nethere.com X-DMCA-Complaints-To: abuse@nethere.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.35 Xref: g2news2.google.com comp.lang.ada:2143 Date: 2007-09-26T06:21:57-07:00 List-Id: The compiler used in my work allowed an aggregate for an array with an elaboration type index to omit one of the index values. (There was no others choice.) As a result, Constraint_Error was raised at library elaboration time, which is a nasty bug to run down in this environment. I was getting ready to file a bug report, certain that this was a compile-time error rather than run-time, when I decided to take a close look at that old LRM. I was surprised to find that the legality rules of 4.4.3 appear to be designed to allow just that, particularly the second clause of paragraph 18. Does anyone know what the purpose of this is? I can see that there's an occasional need for it, as in the case of an aggregate for a formal parameter of an unconstrained array type. It certainly seems to me that in the case of an aggregate for a constrained array object, catching this error at compile time in is line with Ada's concept of doing as much as possible at compile time. Or am I wrong? Are there other paragraphs that do require this to be caught during compilation? Charlie