gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 8 Apr 2008 18:12:53 +0000 (18:12 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 8 Apr 2008 18:12:53 +0000 (18:12 +0000)
commit581edf9260bddd3f0ce13e2f2b6758f6f638b22c
treee042a3438f9aaea3565ebd713196dfa9f19c8e53
parent57b9e36755f9459bcb6b6699b12b150037a5adb4
gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.

* gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
(fdesc_type_node): Define.
(null_fdesc_node): Likewise.
* decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
uses descriptors for vtables and the type comes from a dispatch table,
return the descriptor type.
* trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
uses descriptors for vtables and the type comes from a dispatch table,
build a descriptor in the static case and copy the existing one in the
non-static case.
(gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
the type is a pointer-to-subprogram coming from a dispatch table,
return the null descriptor.
<N_Unchecked_Type_Conversion>: If the target uses descriptors for
vtables, the source type is the descriptor type and the target type
is a pointer type, first build the pointer.
* utils.c (init_gigi_decls): If the target uses descriptors for vtables
build the descriptor type and the null descriptor.

From-SVN: r134101
gcc/ada/ChangeLog
gcc/ada/decl.c
gcc/ada/gigi.h
gcc/ada/trans.c
gcc/ada/utils.c