diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2011-04-02 08:44:43 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2011-04-02 08:44:43 +0000 |
commit | e3edbd56bae7748e9aee236cae35836edb9e35e8 (patch) | |
tree | 3bd19211576bdf7f1b96652d584a9d5ccb0c08b3 /gcc/ada/gcc-interface/gigi.h | |
parent | 65444786bebc03fd4f639801aecc8a25047d33f8 (diff) | |
download | gcc-e3edbd56bae7748e9aee236cae35836edb9e35e8.zip gcc-e3edbd56bae7748e9aee236cae35836edb9e35e8.tar.gz gcc-e3edbd56bae7748e9aee236cae35836edb9e35e8.tar.bz2 |
gigi.h (get_dummy_type): Declare.
* gcc-interface/gigi.h (get_dummy_type): Declare.
(build_dummy_unc_pointer_types): Likewise.
(finish_fat_pointer_type): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
fat pointer type has been built, complete it in place.
<E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
and thin pointers. Remove useless variable.
(finish_fat_pointer_type): Make global and move to...
* gcc-interface/utils.c (finish_fat_pointer_type): ...here.
(get_dummy_type): New function.
(build_dummy_unc_pointer_types): Likewise.
(gnat_pushdecl): Propage the name to the anonymous variants only.
(update_pointer_to): Only adjust the pointer types in the unconstrained
array case.
From-SVN: r171882
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index fbf8a0b..c5cd577 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -504,12 +504,24 @@ extern void init_dummy_type (void); /* Make a dummy type corresponding to GNAT_TYPE. */ extern tree make_dummy_type (Entity_Id gnat_type); +/* Return the dummy type that was made for GNAT_TYPE, if any. */ +extern tree get_dummy_type (Entity_Id gnat_type); + +/* Build dummy fat and thin pointer types whose designated type is specified + by GNAT_DESIG_TYPE/GNU_DESIG_TYPE and attach them to the latter. */ +extern void build_dummy_unc_pointer_types (Entity_Id gnat_desig_type, + tree gnu_desig_type); + /* Record TYPE as a builtin type for Ada. NAME is the name of the type. ARTIFICIAL_P is true if it's a type that was generated by the compiler. */ extern void record_builtin_type (const char *name, tree type, bool artificial_p); /* Given a record type RECORD_TYPE and a list of FIELD_DECL nodes FIELD_LIST, + finish constructing the record type as a fat pointer type. */ +extern void finish_fat_pointer_type (tree record_type, tree field_list); + +/* Given a record type RECORD_TYPE and a list of FIELD_DECL nodes FIELD_LIST, finish constructing the record or union type. If REP_LEVEL is zero, this record has no representation clause and so will be entirely laid out here. If REP_LEVEL is one, this record has a representation clause and has been |