+2009-07-27 Sergey Rybin <rybin@adacore.com>
+
+ * gnat_ugn.texi: Update gnatcheck doc.
+
+2009-07-27 Arnaud Charlet <charlet@adacore.com>
+
+ * lib-xref.ads: Allocate/document 'o' char for use by references to
+ spark 'own' variables.
+
2009-07-27 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Analyze_Function_Return): Set Referenced on return
@cindex @code{Deep_Inheritance_Hierarchies} rule (for @command{gnatcheck})
@noindent
-Flags a tagged derived type declaration if its depth (in its inheritance
+Flags a tagged derived type declaration or an interface type declaration if
+its depth (in its inheritance
hierarchy) exceeds the value specified by the @option{N} rule parameter.
-The depth of a root tagged type (ie, a tagged type that is not a derived type)
-is 0.
-If tagged type T2 derives directly from tagged type T1, then the depth of T2
-is one more than the depth of T1.
+The inheritance depth of a tagged type or interface type is defined as 0 for
+a type with no parent and no progenitor, and otherwise as 1 + max of the
+depths of the immediate parent and immediate progenitors.
-This rule does not flag interface types or private extension
+This rule does not flag private extension
declarations. In the case of a private extension, the correspondong full
declaration is checked.
@table @emph
@item N
-Positive integer specifying the maximal allowed depth of any inheritance
-hierarchy.
+Integer not less then -1 specifying the maximal allowed depth of any inheritance
+hierarchy. If the rule parameter is set to -1, the rule flags all the declarations
+of tagged and interface types.
@end table
-- k = implicit reference to parent unit in child unit
-- l = label on END line
-- m = modification
+ -- o = own variable reference (SPARK only)
-- p = primitive operation
-- P = overriding primitive operation
-- r = reference
-- graph construction). Again, in the case of an accept there
-- can be multiple l lines.
+ -- o is used for variables referenced from a SPARK 'own'
+ -- definition. In the SPARK language, it is allowed to use a
+ -- variable before its actual declaration.
+
-- p is used to mark a primitive operation of the given entity.
-- For example, if we have a type Tx, and a primitive operation
-- Pq of this type, then an entry in the list of references to