ACATS Modification List for ACATS 4.1 Version 4.1G March 16, 2018 What is this? This is the ACATS modification list for ACATS 4.1. This document includes test corrections, test removals, and new tests for ACATS 4.1. ACATS 4.1 is the current test suite for Ada, covering the third edition of Ada, ISO/IEC 8652:2012 (usually known as "Ada 2012"). ACATS Modification List version 3.1R for ACATS 3.1 is the current list for that test suite. ACATS 3.1 should be used for testing implementations that support Amendment 1 (ISO/IEC 8652:1995/AMD 1:2007, often known as "Ada 2005"), and will continue to be maintained as necessary for the foreseeable future. ACATS Modification List version 2.6G for ACATS 2.6 is the current list for that test suite. ACATS 2.6 should be used for testing implementations of the second edition of Ada, ISO/IEC 8652:1995 (usually known as "Ada 95"); it also will continue to be maintained as necessary for the foreseeable future. Changes from the last list: A handful of tests changed status on January 1st; see the lists for the details. Tests B392002, B392005, BA12010, and BDB0A01 were modified to use Possible Error tags in order to reflect intent (Possible Error hasn't been created when these tests were built). Test B3A2009 was modified to remove tabs (not allowed by the test format standards). New test B480004 checks that an allocator is illegal for an access type with Storage_Size zero. Related new test BDB2001 checks that a call on an instance of Unchecked_Deallocation is illegal for the same access types. Test B750A07 was modified to allow errors to be reported anywhere in multi-line expressions. Test B83027B was modified to eliminate an unrelated illegality (all or no discriminants need defaults for a single type). Test B83027D and BC51016 were modified to fix the format of an error tag. Test B83E01B was modified to remove possible error cascades and to better follow test standards. New tests C760A02 and C760A03 check that functions that return immutably limited types do not use a temporary object (the result should be built-in-place). Test BA11007 was split into six files to eliminate the need for cross-unit error correction and to provide better error handling. Tests BA1001D, BA1020F, and BA11013 were corrected to document that the main unit is optional and does not need to be processed. New test BA14001 replaces legacy test BA1101E with a modern format test that also includes test cases for Ada 95 unit types. Related new test BA14002 includes test cases for private with. New test BA14003 checks a violation of 10.1.4(5) for private with. New test CXAG003 checks the function Name_Case_Equivalence (added by Ada 2012). Test BXC6A03 was modified to reflect AI05-0218-1. Tests B37309B, B37310B, B37311A, B392003, B392004, B393001, B393007, B393010, B3A2007, B3A2008, B3A2011, B3A2012, B3A2016, B4A010C, B540001, B540002, B54B01B, B54B001C, B54B02B, B54B02C, B54B02D, B54B04A, B54B04B, B54B05A, B55B12B, B55B12C, B552A01, and BDD2003 were modified to better reflect realistic error handling. A message in the grading tool (GRADE.A) was corrected so that the correct flag is displayed (the grading result is unaffected). Three tests with optional units were added to the list in SPECIAL.A, part of the test summary tool (the summaries are used by the grading tool). New tests posted between January 1, 2018 and March 31, 2018 will become required for conformity assessments on October 1, 2018. New tests posted between October 1, 2017 and December 31, 2017 will become required for conformity assessments on July 1, 2018. New tests posted between July 1, 2017 and September 30, 2017 will become required for conformity assessments on April 1, 2018. New tests posted before July 1, 2017 are required for conformity assessments. The effective dates of tests are marked in the lists. Questions about this document? Contact the ACAA Technical Agent at agent@ada-auth.org. ACATS 4.1 includes optional Test Grading tools ACATS 4.1 introduces new test grading tools. When the ACATS was designed (as the ACVC in the early 1980s), the intention always was that running it would give a simple and clear Pass or Fail result. However, grading of tests (particularly of B and L Tests) is somewhat subjective and very time-consuming. (Test grading typically involved poring over compiler listings of the entire ACATS with a large highlighter.) The subjectivity was acceptable in the days of common formal testing, as the formal testers would enforce a common grading standard (even if no one could describe what that was), but in an age of self-testing, it reduces the value of the ACATS. As such, we're introducing a long-overdue set of automated grading tools. These tools are intended to: • Greatly reduce the effort to grade an ACATS test run (and, hopefully to reduce the cost of formal testing to make it a more practical option); • Ensure that all users of the ACATS grade tests in the same way, thus making it more valid to compare ACATS results between different implementations and different testers; • Give implementers certainty as to whether a particular test result is passing (whether the location of an error is “close enough” to the canonical position); • Be able to detect process errors (especially errors of omission) – that is, tests improperly run (for instance, files compiled in the wrong order where the ACATS requires an order), or not run at all (if one is checking off lines in a listing, it's hard to notice that some test or portion of a test is missing). The tools also will optionally give feedback to implementers about quality of error message positioning and of error cascades (does one error generate multiple messages?). (Since “goodness of an implementation” is not something that the ACATS tests for, this is not an official goal for the tools.) This is an ambitious set of goals. It's unlikely that they'll be completely met by the initial versions of the tools. As such, their use will be completely optional (but encouraged!) for ACATS 4.1. The tools will be updated periodically by the normal process for updating the ACATS – an ACATS Modification List like this one. Details on the operation of the tools can be found in the ACATS 4.1 documentation (that documentation can be found at http://www.ada-auth.org/acats-files/4.1/docs/UG-6.HTM). As always, if you have questions, contact the ACAA Technical Agent at agent@ada-auth.org. Notice: The ACAA has created and maintains the Ada Conformity Assessment Test Suite for the purpose of conformity assessments conducted in accordance with the International Standard ISO/IEC 18009 - Ada: Conformity assessment of a language processor. This test suite should not be used to make claims of conformance unless used in accordance with ISO/IEC 18009 and any applicable ACAA procedures. List explanation: Test numbers given are for the basic test. Categories are “Withdrawn” (the test should not be processed for Ada conformity assessments); “Allowed Modification” (either the original test or the modified one should be processed for Ada conformity assessments); “Modified” (the modified test must be processed for Ada conformity assessments); “Pending New” (the test does not need to be processed for Ada conformity assessments, but will be added in the future); “New” (the test is processed for Ada conformity assessments). ACATS version labels are provided with all new and modified tests. Use this label to retrieve the test from the ACATS VCS. See “How to get new and modified tests”. In citations, line numbers are given relative to the start of a test file in the format of '@'; if a test program comprises more than one file, then the particular file will be indicated by "fn", where "n" is the test-program name's file-designator numeral. E.g., "B38103E : @f1-31, ... " denotes test file b38103e1.ada. In cases where there are two or more rationales for different errors in a test program, these different rationales with their respective line citations are listed on separate lines. References to the Ada standards are given in the format: .[.]: These references are to the consolidated Ada standard as available at http://www.ada-auth.org/standards/rm12_w_tc1/html/RM-TOC.html. Main list: ===== Core Language ===== Name Category Version label (effective date; old version label) Short description. C350001 [New] VCS Label: A4_1D Check that the object form of the Image attribute is implemented. C352001 [Modified] VCS Label: A4_1D Corrected Failed message @267 to reflect intended result. B354002 [New] VCS Label: A4_1D Test basic requirements for the Mod attribute. C354004 [New] VCS Label: A4_1D Test basic operation of the Mod attribute. B35A001 [New] VCS Label: A4_1D Check Legality Rules are enforced when Small is specified by an aspect specification. C35A001 [New] VCS Label: A4_1D Check that Small can be specified by an aspect specification. B37309B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B37310B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B37311A [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B38003D [Modified] VCS Label: A4_1A Corrected error tags @70,76,82,88 so “optional” and “error” are on the same line, as required by the test standards. B392002 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to use Possible Error tags, and added error location indicators. B392003 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B392004 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B392005 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to use Possible Error tags, and added error location indicators. B393001 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B393007 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. Fixed overlong lines. B393010 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. Fixed overlong lines. B3A2007 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B3A2008 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B3A2009 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Removed tabs to meet test format standards; added error location indicators. B3A2011 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B3A2012 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B3A2016 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. C3A0030 [New] VCS Label: A4_1A Check that an access discriminant is only null excluding if it includes a null exclusion. B3A1001 [Modified] VCS Label: A4_1A Split Pack6 so possible error sets don't intersect; fixed overlong lines. B3A1002 [Modified] VCS Label: A4_1A Split Pack6 so possible error sets don't intersect; fixed overlong lines. C452002 [New] VCS Label: A4_1D Check that overloading resolution of Ada 2012 membership operations works as intended. C452002 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1D Required after 2018-04-01 Fixed incorrect test number passed to Report. C453001 [New] VCS Label: A4_1D Check that modular adding operators wrap around rather than raising Constraint_Error. B455002 [Modified] VCS Label: A4_1A Corrected casing of error tags and fixed overlong lines. B457001 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1 Required after 2018-04-01 Fixed overlong lines. Added location indicators. B457004 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1 Required after 2018-04-01 There should not be an ERROR tag @282; Single_Highest @290 should be Single_High. Added location indicators. B458001 [Pending New] New VCS Label: A4_1F Required after 2018-07-01 Check that a quantified expression has to be surrounded in parentheses if it is not already surrounded by them. C460014 [New] VCS Label: A4_1C Check that Constraint_Error is raised appropriately when converting access-to-classwide to another access type. C460015 [New] VCS Label: A4_1C Check that Constraint_Error is raised appropriately when converting access-to-limited-classwide to another access type. B470001 [New] VCS Label: A4_1D Check that qualified expressions are a constant view of the expression, even if the expression is a variable object. C470001 [New] VCS Label: A4_1D Check that qualified expressions are a name, and thus can be used as a prefix and other places a name is required. C480001 [New] VCS Label: A4_1D [VCS Label A4_1A] Check that an initialized allocator for a class-wide type does an accessibility check on the tag of the initializing object. [VCS Label A4_1D] Changed mode to “in” (instead of “in out”) @103 & 144 as those parameters are used in functions, making that an Ada 2012 feature, and this is an Ada 2005 test. B480004 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Check that an allocator is illegal if the access type has a Storage_Size that is statically zero. B4A010C [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. C52101A [Modified] VCS Label: A4_1A Corrected comment @49 not to have the form of an error tag. B540001 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B540002 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B01B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B01C [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B02B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B02C [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B02D [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B04A [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B04B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B54B05A [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B552A01 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. Fixed an overlong line. B55B12B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B55B12C [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. B611001 [New] VCS Label: A4_1A Check that Pre and Post are only allowed on subprograms and entries (and not on subprogram instances). B611002 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that Pre and Post are not allowed on subprograms acting as completions. [VCS Label A4_1C] Corrected several error location codes. B611003 [New] VCS Label: A4_1A Check that Pre'Class and Post'Class are only allowed on primitive subprograms of tagged types. (Normal tagged types and interfaces.) B611004 [New] VCS Label: A4_1A Check that Pre'Class and Post'Class are not allowed on subprograms acting as completions. B611005 [New] VCS Label: A4_1A Check that Pre and Post are not allowed on abstract subprograms and null procedures. B611006 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that the restrictions on Pre'Class and Post'Class expressions added by AI12-0113-1 are enforced. [VCS Label A4_1C] Clarified error @208; changed error @233 & @247 to OK (as the inherited Proc4 routine is abstract and thus is not subject to the new rule). B611007 [New] VCS Label: A4_1A Check that Pre'Class and Post'Class are not allowed on entries and protected subprograms of untagged task and protected types. B611007 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1A Required after 2018-04-01 Corrected preconditions @77 and @110 not to violate the new rule added by Binding Interpretation AI12-0166-1. B611008 [New] VCS Label: A4_1A Check various rules about the use of the Result attribute. B611009 [New] VCS Label: A4_1A Check that F'Result is not allowed in the body of F. B611010 [New] VCS Label: A4_1A Check that the Old attribute is not allowed in a subprogram or entry body, or in an accept statement. B611011 [New] VCS Label: A4_1A Check the Old attribute cannot be used within a precondition expression nor in a generic specification outside of a postcondition expression. B611012 [New] VCS Label: A4_1A Check that the prefix of an Old attribute cannot contain the Result attribute, another Old attribute, nor the index of a quantified expression. B611013 [New] VCS Label: A4_1A For a discrete X, check that X'Old has the nominal subtype of X. B611014 [New] VCS Label: A4_1C [VCS Label A4_1B] If an Old attribute reference occurs at a place where it is potentially unevaluated, check that the prefix must statically denote an object. [VCS Label A4_1C] Corrected error location codes @240 and @252. B611015 [New] VCS Label: A4_1B Check that the prefix of an Old attribute cannot have a limited type. B611016 [New] VCS Label: A4_1B Check that tagged task and tagged protected types do not allow Pre'Class and Post'Class, nor are they allowed on operations of those types. B611017 [New] VCS Label: A4_1C [VCS Label A4_1B] Check that Pre'Class cannot be specified for an overriding of a subprogram that does not specify Pre'Class. [VCS Label A4_1C] Declaration of New_Proc @358 is not overriding and thus not subject to the rule. The declaration of Shine @149 never overrides primitives of the actual type by 12.3(18), thus this rule does not apply to instances of Gen2. Added an example using a generic derived type. B611018 [New] VCS Label: A4_1C [VCS Label A4_1B] Check 6.1.1(10-16/3). [VCS Label A4_1C] Type T08 @230 and @241 needs to be declared abstract. B611019 [New] VCS Label: A4_1C [VCS Label A4_1B] Check 6.1.1(17/3). [VCS Label A4_1C] The declaration of Get_Count @112 never overrides primitives of the actual type by 12.3(18), thus this rule does not apply to instances of Gen2. Added examples using generic derived types. C611A01 [New] VCS Label: A4_1A Check that preconditions and postconditions where both specific and class-wide contracts apply are checked properly. C611A02 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that the correct expressions are evaluated for specific preconditions and postconditions, and that they are evaluated at the correct point. [VCS Label A4_1C] The main subprogram name was corrected to follow the rules of the ACATS User's Guide, clause 4.3.3. C611A03 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that the correct expressions are evaluated for class-wide preconditions and postconditions, and that they are evaluated at the correct point. [VCS Label A4_1C] The main subprogram name was corrected to follow the rules of the ACATS User's Guide, clause 4.3.3. C611A04 [New] VCS Label: A4_1D [VCS Label A4_1C] Check that the correct expressions are evaluated for class-wide preconditions and postconditions of an interface type, and that they are evaluated at the correct point. [VCS Label A4_1D] Fixed overlong lines. C611B01 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that X'Old has the tag of X and not the tag of the nominal subtype of X (for Post). [VCS Label A4_1C] The main subprogram name was corrected to follow the rules of the ACATS User's Guide, clause 4.3.3. C611B02 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that X'Old has the tag of X and not the tag of the nominal subtype of X (for Post'Class). [VCS Label A4_1C] The main subprogram name was corrected to follow the rules of the ACATS User's Guide, clause 4.3.3. C611B03 [New] VCS Label: A4_1D [VCS Label A4_1C] Check that X'Old has the tag of X and not the tag of the nominal subtype of X (for Post'Class of an interface type). [VCS Label A4_1D] Fixed overlong lines. B62001C [Modified] VCS Label: A4_1A Changed error @35 to be optional, as the syntax error @33 is required (and the comment that only one error need be detected is bogus). B62001D [Modified] VCS Label: A4_1A Changed error @41 to be optional, as the syntax error @33 is required (and the comment that only one error need be detected is bogus). B65005A [Modified] VCS Label: A4_1D Added additional error locations to directly support common error reporting strategies. B65005B [Modified] VCS Label: A4_1D Added additional error locations to directly support common error reporting strategies. C650B04 [New] VCS Label: A4_1A Check that the result of a function that returns a class-wide tagged type does an accessibility check on the tag of the result object when the result expression is class-wide. B651001 [New] VCS Label: A4_1D Check that a return statement cannot apply to a nonreturning procedure, and that a renames-as-body of a nonreturning procedure has to be a nonreturning procedure (pragma No_Return version). C651001 [New] VCS Label: A4_1D Check that a nonreturning procedure can raise an exception and raises Program_Error otherwise (pragma No_Return version). B651002 [New] VCS Label: A4_1D Check that a return statement cannot apply to a nonreturning procedure, and that a renames-as-body of a nonreturning procedure has to be a nonreturning procedure (aspect No_Return version). C651002 [New] VCS Label: A4_1D Check that a nonreturning procedure can raise an exception and raises Program_Error otherwise (aspect No_Return version). B651003 [New] VCS Label: A4_1D Check that an aspect No_Return can only be given on a procedure or generic procedure, that the expression has to be nonstatic, and that the aspect is not given on an instance or null procedure. B680001 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1 Required after 2018-04-01 The immediately enclosing expression function @140 does not declare a parameter A, but A is used @141. Added location indicators. B730006 [Modified] VCS Label: A4_1C Corrected format of error tags; added location indicators. B730011 [New] VCS Label: A4_1C Test various rules about completions of private types and extensions; replaces test B74001A. B730012 [New] VCS Label: A4_1C Test various rules about completions of private types and extensions in generic units; replaces test B74001B. B730013 [New] VCS Label: A4_1D Test operations available for a private type; replaces test B74203E. B73001A [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001B [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001C [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001D [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001E [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001F [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001G [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B73001H [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B740003 [Modified] VCS Label: A4_1A Modified criteria @75 so that it doesn't look like an error tag to the grading tools; also fixed an overlong line. B74001A [Withdrawn] VCS Label: A4_1C Replaced by B730011. B74001B [Withdrawn] VCS Label: A4_1C Replaced by B730012. B74203E [Withdrawn] VCS Label: A4_1D Replaced by B730013. B750A07 [New] VCS Label: A4_1A Check that only legal expressions are allowed in the return expression of an expression function that returns a limited type. B750A07 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1A Required after 2018-07-01 Adjusted error indicators to allow the error to be reported anywhere in a multi-line expression. C760A02 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Checks that functions that return immutably limited types are built-in-place. C760A03 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Checks that expression functions that return immutably limited types are built-in-place. B83027B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 The disriminant @90 needs a default expression as all or none of the discriminants of a type need defaults. Also added error location indicators. B83027D [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Corrected bad error tag, and added error location indicators. B83E01B [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Removed possible error cascades, reformatted some error tags, and added error location indicators. B83F02C [Modified] VCS Label: A4_1A Updated many optional error markers to match ACATS standards. B91003A [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B91003B [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B91003C [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B91003D [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B940003 [Modified] VCS Label: A4_1C Added additional error locations to directly support common error reporting strategies. B940004 [Modified] VCS Label: A4_1C Split into 8 files; added location indicators. B95007B [Modified] VCS Label: A4_1A Fixed error markers @62,66,70 to match ACATS standards. BA1001D [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to mark the main subprogram as optional, as it is not necessary to check the test objective. Added error location indicators. BA1020F [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to mark the main subprogram as optional, as it is not necessary to check the test objective. Added error location indicators. BA11007 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Split into six test files to avoid requiring error recovery. BA11013 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to make processing the last compilation unit optional, as it is not necessary to check the test objective. Added error location indicators. BA1101E [Withdrawn] Org VCS Label: A4_1G Replaced by test BA14001. BA12010 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to use Possible Error tags, and added error location indicators. BA14001 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Replaces test BA1101E with modern format and additional test cases for Ada 95 compilation units. BA14002 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Similar to BA14001, testing private with. BA14003 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Checks that a unit is illegal if it depends on two versions of the same unit. BA21005 [New] VCS Label: A4_1D Test that Pure and Preelaborate aspects cannot be specified late, with a nonstatic expression, or an expression of a type other than Boolean. BB42001 [New] VCS Label: A4_1C [VCS Label A4_1A] Check that the arguments of a pragma Assert have to have the correct types. [VCS Label A4_1C] Corrected two incorrect error location codes. CB42001 [New] VCS Label: A4_1A Check the usual operation of pragma Assert, including the optional message. BB42002 [New] New VCS Label: A4_1A Check that the arguments of a pragma Assert cannot be reordered even if named notation is used. CB42002 [New] New VCS Label: A4_1A Check that if the assertion policy is Ignore, none of the expressions of a pragma Assert are evaluated and no exception is raised by the pragma. BB42003 [New] VCS Label: A4_1A Check that a pragma Assertion_Policy is illegal if the policy is not recognized. CB42003 [New] VCS Label: A4_1A Check that procedure Ada.Assertions.Assert evaluates its arguments and raises Assertion_Error regardless of the assertion policy. CC3601C [Modified] VCS Label: A4_1E Moved “=” for type Rec in order that it not violate 4.5.2(9.8/4). CC51010 [Allowed Modification] New VCS Label: A4_1F Org VCS Label: A4_1 Required after 2018-04-01 The main subprogram name was corrected to follow the rules of the ACATS User's Guide, clause 4.3.3. BC51016 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Corrected bad error tag, and added error location indicators. CD1009A [Withdrawn] VCS Label: A4_1D Has one of the objectives of, and thus redundant with, test CD2A31C (now CD30012). CD1009B [Withdrawn] VCS Label: A4_1D Has one of the objectives of, and thus redundant with, test CD2A21C (now CD30011). CD1009L [Withdrawn] VCS Label: A4_1D Virtually identical to, and thus redundant with, test CD2D13A. CD1009M [Withdrawn] VCS Label: A4_1D Virtually identical to, and thus redundant with, test CD3014C. CD11001 [New] VCS Label: A4_1A Check that appropriate entities are visible in an aspect specification. CD2A21C [Withdrawn] VCS Label: A4_1D Replaced by CD30011. CD2A31C [Withdrawn] VCS Label: A4_1D Replaced by CD30012. BD30001 [New] VCS Label: A4_1D Check Legality Rules are enforced when Size is specified by an aspect specification for a type. BD30002 [New] VCS Label: A4_1D Check Legality Rules are enforced when Alignment is specified by an aspect specification for a type. BD30003 [New] VCS Label: A4_1D Check Legality Rules are enforced when Component_Size is specified by an aspect specification. CD30010 [New] VCS Label: A4_1D Check that Component_Size can be specified via an aspect specification. CD30011 [New] VCS Label: A4_1D Merges legacy tests CD1009B and CD2A21C to eliminate duplication (CD1009B has the same objective as one of the objectives of CD2A21C) while adding modern formatting and applicability criteria. CD30012 [New] VCS Label: A4_1D Merges legacy tests CD1009A and CD2A31C to eliminate duplication (CD1009A has the same objective as one of the objectives of CD2A31C) while adding modern formatting and applicability criteria. BD4003A [Modified] VCS Label: A4_1A Moved error marker from @66 to @67 so it is on the incorrect construct. BDB0A01 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Revised to use Possible Error tags, and added error location indicators. BDB2001 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Check that a call on an instance of Unchecked_Deallocation is illegal if the access type has a Storage_Size that is statically zero. BDD2003 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Added additional error locations to directly support common error reporting strategies. CDE0002 [Modified] VCS Label: A4_1E Changed to use Storage_Size rather than Size so that the static expression rule of 13.14(7.2/3) is not triggered. CXAC009 [New] VCS Label: A4_1D Check that Stream_IO.File_Type has Preelaborable_Initialization. CXAG003 [Pending New] New VCS Label: A4_1G Required after 2018-10-01 Check that function Ada.Directories.Name_Case_Equivalence exists and that it is reflects the handling of file names. CXB3023 [New] VCS Label: A4_1A Check that a value of an unchecked union type (defined with pragma Unchecked_Union) can be passed to a C function. CXB3024 [New] VCS Label: A4_1A Check that a value of an unchecked union type (defined with aspect Unchecked_Union) can be passed to a C function. ===== Annex C ===== BXC6A03 [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1 Required after 2018-07-01 Changed subtest result to require the changes of AI05-0218-1. ===== Annex D ===== CXD2007 [Modified] VCS Label: A4_1C Added missing N/A => Error tag. LXD7001 [Modified] VCS Label: A4_1C Added missing error tag. LXD7003 [Modified] VCS Label: A4_1C Added missing error tag. LXD7004 [Modified] VCS Label: A4_1C Added missing error tag. LXD7005 [Modified] VCS Label: A4_1C Added missing error tag. LXD7006 [Modified] VCS Label: A4_1C Added missing error tag. LXD7007 [Modified] VCS Label: A4_1C Added missing error tag. LXD7008 [Modified] VCS Label: A4_1C Added missing error tag. LXD7009 [Modified] VCS Label: A4_1C Added location indicators. CXDB001 [Modified] VCS Label: A4_1C Added missing N/A => Error tag. CXDB002 [Modified] VCS Label: A4_1C Added missing N/A => Error tag. CXDB003 [Modified] VCS Label: A4_1C Added missing N/A => Error tag. CXDB004 [Modified] VCS Label: A4_1C Added missing N/A => Error tag. ===== Annex E ===== [None.] ===== Annex F ===== [None.] ===== Annex G ===== [None.] ===== Annex H ===== LXH4001 [Modified] VCS Label: A4_1C Corrected format of error tag; added location indicators. LXH4003 [Modified] VCS Label: A4_1C Corrected format of error tag; added location indicators. LXH4006 [Modified] VCS Label: A4_1C Added missing error tags. LXH4009 [Modified] VCS Label: A4_1C Added missing error tags. LXH4013 [Modified] VCS Label: A4_1C Added missing error tags. LXH4014 [Modified] VCS Label: A4_1C Added missing error tags. ===== Support ===== F611A00 [New] VCS Label: A4_1A [VCS Label A4_1A] Foundation for tests C611A01, C611A02, and C611A03. [VCS Label A4_1C] Added additional data for test C611A04. The changes are only needed for that test. F611B00 [New] VCS Label: A4_1A Foundation for tests C611B01, C611B02, and C611B03. GRADE.A [Modified] VCS Label: A4_1D [VCS Label A4_1C] Allowed manual grading for tests that are missing execution or linking (with no earlier errors). Corrected the result for binder crashes. Added category totals to the summary. [VCS Label A4_1D] Corrected so that Annex C RQMT failures are properly counted in their own category. GRADE.A [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1D Required after 2018-07-01 Corrected call @1578 so that the special handling flag rather than the failed flag is used with a manual grading message for a missing error set. (The actual grade was correct, only the message was wrong.) GRD_DATA.A [Modified] VCS Label: A4_1D Increased table sizes as the new tests have caused grading the entire ACATS to exceed the old limits. SPECIAL.A [Modified] VCS Label: A4_1C Added test BA21005 to the list of optional main subprograms. SPECIAL.A [Allowed Modification] New VCS Label: A4_1G Org VCS Label: A4_1C Required after 2018-07-01 Added three tests to the list of optional main subprograms. SUMMARY.A [Modified] VCS Label: A4_1C Corrected identification of main subprograms in modern tests. Changed the unit name for subunits to be the full expanded name including the parent name. How to get new and modified tests: The official home of the ACATS test suite is the ACAA web site. The site can be accessed at www.ada-auth.org. The complete set of official new and modified tests are available in the Mod_4_1G.Zip and Tar files on the ACAA web site. As always, when a multi-file test is modified, we provide all of the files, including the unmodified files. Individual new and modified tests can be retrieved from the ACATS VCS. Simply navigate to the appropriate directory (folder), and select the test you want. Select the revision you want (usually the most recent) and it will be retrieved for you. Tests are stored in directories that correspond to the test’s prefix. For instance, the test CD92001.A will be found in the CD directory. You can also browse the differences between versions of a test. [In case of a conflict, the files in the ACATS VCS should be considered the 'official' versions.] If you cannot get the files from the official site or you cannot get the files in a format appropriate for your processor, please contact your ACAL. The baseline ACATS 4.1 is available in various formats on the ACAA web site. Summary lists: Withdrawn Tests (Refer to the main list for details) B74001A B74001B B74203E BA1101E CD1009A CD1009B CD1009L CD1009M CD2A21C CD2A31C Allowed Modification Tests (Refer to the main list for details) B37309B 2018-07-01 B37310B 2018-07-01 B37311A 2018-07-01 B392002 2018-07-01 B392003 2018-07-01 B392004 2018-07-01 B392005 2018-07-01 B393001 2018-07-01 B393007 2018-07-01 B393010 2018-07-01 B3A2007 2018-07-01 B3A2008 2018-07-01 B3A2009 2018-07-01 B3A2011 2018-07-01 B3A2012 2018-07-01 B3A2016 2018-07-01 B457001 2018-04-01 B457004 2018-04-01 B4A010C 2018-07-01 B540001 2018-07-01 B540002 2018-07-01 B54B01B 2018-07-01 B54B01C 2018-07-01 B54B02B 2018-07-01 B54B02C 2018-07-01 B54B02D 2018-07-01 B54B04A 2018-07-01 B54B04B 2018-07-01 B54B05A 2018-07-01 B55B12B 2018-07-01 B55B12C 2018-07-01 B552A01 2018-07-01 B611007 2018-04-01 [VCS Label A4_1F] B680001 2018-04-01 B750A07 2018-07-01 [VCS Label A4_1G] B83027B 2018-07-01 B83027D 2018-07-01 B83E01B 2018-07-01 BA1001D 2018-07-01 BA1020F 2018-07-01 BA11007 2018-07-01 BA11013 2018-07-01 BA12010 2018-07-01 BC51016 2018-07-01 BDB0A01 2018-07-01 BDD2003 2018-07-01 BXC6A03 2018-07-01 C452002 2018-04-01 [VCS Label A4_1F] CC51010 2018-04-01 GRADE.C 2018-07-01 [VCS Label A4_1G] SPECIAL.C 2018-07-01 [VCS Label A4_1G] Modified Tests (Refer to the main list for details) B38003D B3A1001 B3A1002 B455002 B62001C B62001D B63005A B65005B B730006 B73001A B73001B B73001C B73001D B73001E B73001F B73001G B73001H B732C02 B740003 B83F02C B95007B B91003A B91003B B91003C B91003D B940003 B940004 BB42001 BD4003A C352001 C52101A CC3601C CDE0002 CXD2007 CXDB001 CXDB002 CXDB003 CXDB004 LXD7001 LXD7003 LXD7004 LXD7005 LXD7006 LXD7007 LXD7008 LXD7009 LXH4001 LXH4003 LXH4006 LXH4009 LXH4013 LXH4014 GRADE [VCS Label A4_1D] GRD_DATA SPECIAL [VCS Label A4_1C] SUMMARY New Tests (Refer to the main list for details) B354002 B35A001 B611001 B611002 B611003 B611004 B611005 B611006 B611007 [VCS Label A4_1A] B611008 B611009 B611010 B611011 B611012 B611013 B611014 B611015 B611016 B611017 B611018 B611019 B651001 B651002 B641003 B730011 B730012 B730013 B750A07 BA21005 BB42001 BB42002 BB42003 BD30001 BD30002 BD30003 C350001 C354004 C35A001 C3A0030 C452002 [VCS Label A4_1D] C453001 C460014 C460015 C470001 C480001 C611A01 C611A02 C611A03 C611A04 C611B01 C611B02 C611B03 C650B04 C651001 C651002 CB42001 CB42002 CB42003 CD11001 CD30010 CD30011 CD30012 CXAC009 CXB3023 CXB3024 F611A00 F611B00 Pending New Tests (Refer to the main list for details) B458001 2018-07-01 B480004 2018-10-01 BA14001 2018-10-01 BA14002 2018-10-01 BA14003 2018-10-01 BDB2001 2018-10-01 C760A02 2018-10-01 C760A03 2018-10-01 CXAG003 2018-10-01