CVS difference for arm/source/10.mss

Differences between 1.86 and version 1.87
Log of other versions for file arm/source/10.mss

--- arm/source/10.mss	2009/12/18 07:15:34	1.86
+++ arm/source/10.mss	2010/05/08 06:31:33	1.87
@@ -1,10 +1,10 @@
 @Part(10, Root="ada.mss")
 
-@Comment{$Date: 2009/12/18 07:15:34 $}
+@Comment{$Date: 2010/05/08 06:31:33 $}
 @LabeledSection{Program Structure and Compilation Issues}
 
 @Comment{$Source: e:\\cvsroot/ARM/Source/10.mss,v $}
-@Comment{$Revision: 1.86 $}
+@Comment{$Revision: 1.87 $}
 @Comment{Corrigendum changes added, 2000/04/24, RLB}
 
 @begin{Intro}
@@ -979,12 +979,14 @@
   @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00331-01]}
   @ChgAdded{Version=[2],Text=[Clarified the wording so that a grandchild
   generic unit will work as expected.]}
+@end{DiffWord95}
 
+@begin{DiffWord2005}
   @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0108-1],ARef=[AI05-0129-1]}
-  @ChgAdded{Version=[3],Text=[@b<Amendment 2:> Clarified the wording so that
+  @ChgAdded{Version=[3],Text=[@b<Correction:> Clarified the wording so that
   it is clear that limited views of types never have discriminants and never
   are of incomplete types.]}
-@end{DiffWord95}
+@end{DiffWord2005}
 
 
 @LabeledSubClause{Context Clauses - With Clauses}
@@ -1568,13 +1570,6 @@
   declared in private child packages, and thus cannot be allowed. This was
   allowed by mistake in Ada 95; a subprogram that does this will now be
   illegal.]}
-
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0040-1]}
-  @ChgAdded{Version=[3],Text=[@b<Amendment 2:> Added missing rule that
-  a limited with clause cannot name an ancestor unit. This is incompatible
-  if Amendment 1 program does this, but as this is a new Ada 2005 feature and
-  the unintentionally allowed capability is not useful, the
-  incompatibility is very unlikely to occur in practice.]}
 @end{Incompatible95}
 
 @begin{Extend95}
@@ -1594,14 +1589,24 @@
   allow using private units in more locations than in Ada 95.]}
 @end{Extend95}
 
-@begin{DiffWord95}
+@begin{Incompatible2005}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0040-1]}
+  @ChgAdded{Version=[3],Text=[@Defn{incompatibilities with Ada 2005}@b<Correction:>
+  Added missing rule that
+  a limited with clause cannot name an ancestor unit. This is incompatible
+  if an Ada 2005 program does this, but as this is a new Ada 2005 feature and
+  the unintentionally allowed capability is not useful, the
+  incompatibility is very unlikely to occur in practice.]}
+@end{Incompatible2005}
+
+@begin{DiffWord2005}
   @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0077-1]}
-  @ChgAdded{Version=[3],Text=[@b<Amendment 2:> Fixed wording so that
+  @ChgAdded{Version=[3],Text=[@b<Correction:> Fixed wording so that
   we are not checking whether something in a @nt{context_clause}
   is @ldquote@;within the scope of@rdquote something, as @nt{context_clause}s
   are never included in anything's scope. The intended meaning is unchanged,
   however.]}
-@end{DiffWord95}
+@end{DiffWord2005}
 
 
 @LabeledSubClause{Subunits of Compilation Units}
@@ -2290,12 +2295,14 @@
   @ChgRef{Version=[2], Kind=[AddedNormal]}
   @ChgAdded{Version=[2], Text=[Ensure that confirming pragmas are always allowed.]}
   @end{itemize}
+@end{DiffWord95}
 
+@begin{DiffWord2005}
   @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0132-1]}
-  @ChgAdded{Version=[3], Text=[@b<Amendment 2:> A library unit pragma must
+  @ChgAdded{Version=[3], Text=[@b<Correction:> A library unit pragma must
   apply directly to a library unit, even if no name is given in the pragma.]}
+@end{DiffWord2005}
 
-@end{DiffWord95}
 
 @LabeledSubClause{Environment-Level Visibility Rules}
 
@@ -2476,7 +2483,6 @@
 @end{DiffWord95}
 
 
-@NewPage
 @LabeledClause{Program Execution}
 
 @begin{Intro}
@@ -3839,26 +3845,6 @@
   object to initialize a library-level object; that isn't allowed in Ada 2005. But such a unit wouldn't really
   be preelaborable, and Ada 95 compilers can reject such units (as this
   is a Binding Interpretation), so such units should be very rare.]}
-
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0028-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Corrected a serious
-  unintended incompatibility with Ada 95 in the new preelaboration wording
-  @em explicit initialization of objects of types that don't have
-  preelaborable initialization was not allowed. Amendment 2 switches
-  back to the Ada 95 rule in these chases. This is unlikely to
-  occur in practice, as it is unlikely that a compiler would have
-  implemented the more restrictive rule (it would fail many ACATS tests
-  if it did).]}
-
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Added an assume-the-worst
-  rule for generic bodies (else they would never be checked for purity)
-  and added the boilerplate so that the entire generic specification is
-  rechecked. Also fixed wording to have consistent handling for subunits
-  for Pure and Preelaborate. An Ada 95 program could have depended on
-  marking a generic pure that was not really pure, although this
-  would defeat the purpose of the categorization and likely cause
-  problems with distributed programs.]}
 @end{Incompatible95}
 
 @begin{Extend95}
@@ -3875,38 +3861,66 @@
   to omit calls was adjusted accordingly (which also fixes a hole in Ada 95, as
   access parameters are allowed, and changes in the values accessed by them
   must be taken into account).]}
+@end{Extend95}
 
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0034-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Added wording so that
-  a limited view is always treated as pure, no matter what categorization
-  is used for the originating unit. This was undefined in Amendment 1.]}
+@begin{DiffWord95}
+  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00002-01]}
+  @ChgAdded{Version=[2],Text=[@B<Corrigendum:> The wording was changed so that
+  subunits of a preelaborated subprogram are also preelaborated.]}
+
+  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00217-06]}
+  @ChgAdded{Version=[2],Text=[Disallowed pragma Elaborate and Elaborate_All
+  for packages that are mentioned in a @nt{limited_with_clause}.]}
+@end{DiffWord95}
+
+@begin{Incompatible2005}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0028-1]}
+  @ChgAdded{Version=[3],Text=[@Defn{incompatibilities with Ada 2005}@B<Correction:> Corrected a serious
+  unintended incompatibility with Ada 95 in the new preelaboration wording
+  @em explicit initialization of objects of types that don't have
+  preelaborable initialization was not allowed. Amendment 2 switches
+  back to the Ada 95 rule in these chases. This is unlikely to
+  occur in practice, as it is unlikely that a compiler would have
+  implemented the more restrictive rule (it would fail many ACATS tests
+  if it did).]}
+
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@B<Correction:> Added an assume-the-worst
+  rule for generic bodies (else they would never be checked for purity)
+  and added the boilerplate so that the entire generic specification is
+  rechecked. Also fixed wording to have consistent handling for subunits
+  for Pure and Preelaborate. An Ada 95 program could have depended on
+  marking a generic pure that was not really pure, although this
+  would defeat the purpose of the categorization and likely cause
+  problems with distributed programs.]}
+@end{Incompatible2005}
 
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Adjusted wording so that
+@begin{Extend2005}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@Defn{extensions to Ada 2005}@B<Correction:>
+  Adjusted wording so that
   subunits can be pure (they are not a @nt<library_item>, but they
   are a compilation unit).]}
 
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0035-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Adjusted wording so
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0035-1]}
+  @ChgAdded{Version=[3],Text=[@B<Correction:> Adjusted wording so
   that the rules for access types only apply to non-derived types
   (derived types share their storage pool with their parent, so if
   the parent access type is legal, so is any derived type.)]}
+@end{Extend2005}
 
-  @ChgRef{Version=[3],Kind=[Added],ARef=[AI05-0028-1]}
-  @ChgAdded{Version=[3],Text=[@B<Amendment 2:> Fixed minor issues with
+@begin{DiffWord2005}
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0034-1]}
+  @ChgAdded{Version=[3],Text=[@B<Correction:> Added wording so that
+  a limited view is always treated as pure, no matter what categorization
+  is used for the originating unit. This was undefined in Ada 2005.]}
+
+  @ChgRef{Version=[3],Kind=[AddedNormal],ARef=[AI05-0028-1]}
+  @ChgAdded{Version=[3],Text=[@B<Correction:> Fixed minor issues with
   preelaborable initialization (PI): null Initialize procedures do not make
   a type non-PI; formal types with pragma PI can be assumed to have PI;
   formal extensions are assumed to not have PI; all composite types
   can have pragma PI (so that the possibility of hidden Initialize routines
   can be handled).]}
-@end{Extend95}
+@end{DiffWord2005}
 
-@begin{DiffWord95}
-  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00002-01]}
-  @ChgAdded{Version=[2],Text=[@B<Corrigendum:> The wording was changed so that
-  subunits of a preelaborated subprogram are also preelaborated.]}
-
-  @ChgRef{Version=[2],Kind=[AddedNormal],ARef=[AI95-00217-06]}
-  @ChgAdded{Version=[2],Text=[Disallowed pragma Elaborate and Elaborate_All
-  for packages that are mentioned in a @nt{limited_with_clause}.]}
-@end{DiffWord95}

Questions? Ask the ACAA Technical Agent