https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62122
Bug ID: 62122
Summary: GNAT RM: flaw in example of @node Attribute
Unrestricted_Access
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: georggcc at googlemail dot com
The example illustrating 'Unrestricted_Access for subprograms
declares a type access procedure with null exclusion, named
Less_Nested, in the body of a package P.
It then declares an object of this (pointer) type, albeit without
initializing it, named Global, in the same package body.
Consequently, since there is a null exclusion, elaboration
of the declaration of Global raises Constraint_Error.
Therefore, neither of the two procedures P1 and P2 illustrating
the use of 'Unrestricted_Access can ever be called, thus defeating
the purpose.
One possible fix is to remove the null exclusion from
the definition of type Less_Nested.
(gcc/ada/gnat_rm.texi SVN r213591, $(srcdir)/BASE-VER has 4.10.0)