diff options
Diffstat (limited to 'gcc/ada/doc/gnat_rm')
-rw-r--r-- | gcc/ada/doc/gnat_rm/gnat_language_extensions.rst | 27 | ||||
-rw-r--r-- | gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst | 24 |
2 files changed, 27 insertions, 24 deletions
diff --git a/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst b/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst index cf1ad60..99cab9d 100644 --- a/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst +++ b/gcc/ada/doc/gnat_rm/gnat_language_extensions.rst @@ -368,6 +368,33 @@ support interactions with GPU. Here is a link to the full RFC: https://github.com/AdaCore/ada-spark-rfcs/blob/master/prototyped/rfc-storage-model.rst +Attribute Super +--------------- +.. index:: Super + +The ``Super`` attribute can be applied to objects of tagged types in order +to obtain a view conversion to the most immediate specific parent type. + +It cannot be applied to objects of types without any ancestors, or types whose +immediate parent is abstract. + +.. code-block:: ada + + type T1 is tagged null record; + procedure P (V : T1); + + type T2 is new T1 with null record; + procedure P (V : T2); + + procedure Call (V : T2'Class) is + begin + V'Super.P; -- Equivalent to "P (T1 (V));", a nondispatching call + -- to T1's primitive procedure P. + end; + +Here is a link to the full RFC: +https://github.com/QuentinOchem/ada-spark-rfcs/blob/oop/considered/rfc-oop-super.rst + Simpler accessibility model --------------------------- diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst index d5a55b9..2db245a 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_attributes.rst @@ -1225,30 +1225,6 @@ type ``RACW_Stub_Type`` declared in the internal implementation-defined unit ``System.Partition_Interface``. Use of this attribute will create an implicit dependency on this unit. -Attribute Super -=============== -.. index:: Super - -The ``Super`` attribute can be applied to objects of tagged types in order -to obtain a view conversion to the most immediate specific parent type. - -It cannot be applied to objects of types without any ancestors, or types whose -immediate parent is an interface type. - -.. code-block:: ada - - type T1 is tagged null record; - procedure P (V : T1); - - type T2 is new T1 with null record; - procedure P (V : T2); - - procedure Call (V : T2'Class) is - begin - V'Super.P; -- Equivalent to "P (T1 (V));", a nondispatching call - -- to T1's primitive procedure P. - end; - Attribute System_Allocator_Alignment ==================================== .. index:: Alignment, allocator |