CVS difference for ai12s/ai12-0311-1.txt
--- ai12s/ai12-0311-1.txt 2019/02/22 05:31:43 1.2
+++ ai12s/ai12-0311-1.txt 2019/02/27 04:11:27 1.3
@@ -1,4 +1,4 @@
-!standard 11.4.2(23.5/5) 19-02-21 AI12-0311-1/02
+!standard 11.4.2(23.5/5) 19-02-26 AI12-0311-1/03
!standard 11.5(23)
!standard 11.5(26)
!reference AI12-0112-1
@@ -48,21 +48,21 @@
Redundant[The following checks correspond to situations in which the
exception Assertion_Error is raised upon failure of a language-defined
-check.] For a language-defined unit U associated with one of these
+check.] For a language-defined unit @i<U> associated with one of these
checks in the list below, the check refers to performance of checks
associated with the Pre, Static_Predicate, and Dynamic_Predicate
-aspects associated with any entity declared in a descendant of U, or
+aspects associated with any entity declared in a descendant of @i<U>, or
in an instance of a generic unit which is, or is declared in, a
-descendant of U. Each check is associated with one or more units:
+descendant of @i<U>. Each check is associated with one or more units:
Calendar_Assertion_Check: Calendar.
Characters_Assertion_Check: Characters, Wide_Characters,
and Wide_Wide_Characters.
Containers_Assertion_Check: Containers.
+ Interfaces_Assertion_Check: Interfaces.
IO_Assertion_Check: Sequential_IO, Direct_IO, Text_IO,
- Wide_Text_IO, Wide_Wide_Text_IO, and Storage_IO,
+ Wide_Text_IO, Wide_Wide_Text_IO, Storage_IO,
Streams.Stream_IO, and Directories.
- Interfaces_Assertion_Check: Interfaces.
Numerics_Assertion_Check: Numerics.
Strings_Assertion_Check: Strings.
System_Assertion_Check: System.
@@ -73,7 +73,7 @@
where the generic is declared in U really extends recursively to
handle the case of a generic package G1 which declares another
generic package G1.G2, which declares another generic package
- G1.G2.G3, etc. So if G1 is declared in some predefined unit U
+ G1.G2.G3, and so on. So if G1 is declared in some predefined unit U
then, for purposes of defining these checks, Some_Instance_Of_G1.G2
is also considered to be declared in U.
@@ -149,9 +149,8 @@
chosen name:
(1) If the subsystem name is plural, we use that plural in the name. We could
-have used a singlar form instead, but that seems weird (especially in the
-case of Numerics). There seems to need to be a leap to mentally the name to
-singlar.
+have used a singular form instead, but that seems weird (especially in the
+case of Numerics).
(2) We use "check" rather than "checks". While "checks" would make more sense,
all of the existing names other than "All_Checks" use "check". Many of the
@@ -159,6 +158,68 @@
cases of the wrong plurality. Using "checks" for some of these and "check" for
others would make it harder for users to know which to use for a particular
check.
+
+!corrigendum 11.4.2(23.1/3)
+
+@dinsa
+It is a bounded error to invoke a potentially blocking operation (see 9.5.1)
+during the evaluation of an assertion expression associated with a call on, or
+return from, a protected operation. If the bounded error is detected,
+Program_Error is raised. If not detected, execution proceeds normally, but if
+it is invoked within a protected action, it might result in deadlock or a
+(nested) protected action.
+@dinst
+Any precondition expression occurring in the specification of a
+language-defined unit is enabled (see 6.1.1) unless suppressed (see 11.5).
+Similarly, any predicate checks for a subtype occurring in the specification
+of a language-defined unit are enabled (see 3.2.4) unless suppressed.
+
+!corrigendum 11.5(23)
+
+@dinsa
+@xhang<@xterm<Storage_Check>
+Check that evaluation of an @fa<allocator> does not require more space than
+is available for a storage pool. Check that the space available for a task
+or subprogram has not been exceeded.>
+@dinss
+@xbullet<The following checks correspond to situations in which the
+exception Assertion_Error is raised upon failure of a language-defined
+check. For a language-defined unit U associated with one of these
+checks in the list below, the check refers to performance of checks
+associated with the Pre, Static_Predicate, and Dynamic_Predicate
+aspects associated with any entity declared in a descendant of U, or
+in an instance of a generic unit which is, or is declared in, a
+descendant of U. Each check is associated with one or more units:>
+
+@xhang<@xterm<Calendar_Assertion_Check>Calendar.>
+
+@xhang<@xterm<Characters_Assertion_Check>Characters, Wide_Characters,
+and Wide_Wide_Characters.>
+
+@xhang<@xterm<Containers_Assertion_Check>Containers.>
+
+@xhang<@xterm<Interfaces_Assertion_Check>Interfaces.>
+
+@xhang<@xterm<IO_Assertion_Check>Sequential_IO, Direct_IO, Text_IO,
+Wide_Text_IO, Wide_Wide_Text_IO, Storage_IO,
+Streams.Stream_IO, and Directories.>
+
+@xhang<@xterm<Numerics_Assertion_Check>Numerics.>
+
+@xhang<@xterm<Strings_Assertion_Check>Strings.>
+
+@xhang<@xterm<System_Assertion_Check>System.>
+
+!corrigendum 11.5(26)
+
+@drepl
+If a given check has been suppressed, and the corresponding error situation
+occurs, the execution of the program is erroneous.
+@dby
+If a given check has been suppressed, and the corresponding error situation
+occurs, the execution of the program is erroneous. Similarly, if a
+precondition check has been suppressed and the evaluation of the precondition
+would have raised an exception, execution is erroneous.
!ASIS
Questions? Ask the ACAA Technical Agent