CVS difference for ais/ai-00329.txt
--- ais/ai-00329.txt 2004/04/06 19:57:12 1.5
+++ ais/ai-00329.txt 2004/05/29 00:38:38 1.6
@@ -1,4 +1,4 @@
-!standard 6.05.01 (01) 04-03-29 AI95-00329/04
+!standard 6.05.01 (01) 04-05-25 AI95-00329/05
!standard 11.04.01 (04)
!standard 11.04.01 (14)
!class amendment 03-03-04
@@ -27,7 +27,7 @@
to know whether it is possible for a call on a given procedure
to return or not. For example, it is relatively common
to have a "Fatal_Error" procedure in an application, which
-displays an error message or logs the error somewhow, and
+displays an error message or logs the error, and
then raises an exception or somehow terminates the program.
It would be useful for the compiler, and the human reader,
to know that any call on such a procedure will never return.
@@ -49,7 +49,7 @@
of its body (just as with a function).
Change the definition of Ada.Exceptions.Raise_Exception
-to raise Constraint_Error of given Null_Id, and mark it
+to raise Constraint_Error if given Null_Id, and mark it
as a No_Return procedure.
!wording
@@ -73,7 +73,7 @@
The pragma shall apply to one or more procedures or generic procedures.
If a pragma No_Return applies to a procedure or a generic procedure, there
- shall be no return_statements within the procedure.
+ shall be no return_statements that apply to that procedure.
Static Semantics
@@ -111,7 +111,7 @@
By placing the pragma No_Return on a procedure, calling
it is effectively equivalent to raising an exception from
-the point of the compiler, so the above should *not* produce
+the point of view of the compiler, so the above should *not* produce
a warning that the function A_OK might end without executing a return
statement. Similarly:
@@ -137,15 +137,15 @@
never return is critical for verifying or simply for
understanding an algorithm.
-GNAT already supports this pragma, and it was recently added it
+GNAT already supports this pragma, and it was recently added
to the AdaMagic front end to allow the compiler to do a
better job of producing warnings in the presence of
-procedures like "Fatal_Error."
+procedures like "Fatal_Error".
It is not uncommon to have a coding discipline that any
compiler warning should be considered an error, and code
must be changed to eliminate any warnings. However, without
-a pragma like "No_Return," this can become difficult and
+a pragma like "No_Return", this can become difficult and
can obscure the true functioning of the code. Furthermore,
it generally requires the insertion of dead code, which is
anathema to most program certification requirements.
@@ -184,8 +184,8 @@
we felt it was unwise to use reachability in a legality rule.
The proposed rule is upward compatible with existing users of
-No_Return, since they currently must abide by the stricter
-rule of unreachable end of body. Also, presumably compilers
+the GNAT pragma No_Return, since they currently must abide by the
+stricter rule of unreachable end of body. Also, presumably compilers
that currently warn about possibly reachable end-of-function
can generalize the warning to apply to No_Return procedures
as well, so the safety provided by the GNAT rule can be preserved
@@ -228,7 +228,7 @@
The pragma shall apply to one or more procedures or generic procedures.
If a pragma No_Return applies to a procedure or a generic procedure, there
-shall be no @fa<return_statement>s within the procedure.
+shall be no @fa<return_statement>s that apply to that procedure.
@i<@s8<Static Semantics>>
Questions? Ask the ACAA Technical Agent