aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-03-12 20:00:32 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-03-12 20:00:32 +0000
commit2b45154d2074a11baa2dfa18247848227fbfa1f0 (patch)
tree1b26a4183158628e3053e92f393f5fa662df3146 /gcc/ada/gcc-interface/decl.c
parent0452b4d47fe1e13bbcb8578e7e348cef2ca17e42 (diff)
downloadgcc-2b45154d2074a11baa2dfa18247848227fbfa1f0.zip
gcc-2b45154d2074a11baa2dfa18247848227fbfa1f0.tar.gz
gcc-2b45154d2074a11baa2dfa18247848227fbfa1f0.tar.bz2
gigi.h (shift_unc_components_for_thin_pointers): Kill.
* gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call to above function. * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust handling of thin pointers. <Attr_Descriptor_Size>: Likewise. (gnat_to_gnu) <N_Free_Statement>: Likewise. * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill. (convert_to_fat_pointer): Adjust handling of thin pointers. (convert) <POINTER_TYPE>: Likewise. * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise. From-SVN: r185268
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r--gcc/ada/gcc-interface/decl.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index 120628e..a3320ed 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -2280,13 +2280,14 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
gnu_fat_type, NULL, !Comes_From_Source (gnat_entity),
debug_info_p, gnat_entity);
- /* Create the type to be used as what a thin pointer designates:
- a record type for the object and its template with the fields
- shifted to have the template at a negative offset. */
+ /* Create the type to be designated by thin pointers: a record type for
+ the array and its template. We used to shift the fields to have the
+ template at a negative offset, but this was somewhat of a kludge; we
+ now shift thin pointer values explicitly but only those which have a
+ TYPE_UNCONSTRAINED_ARRAY attached to the designated RECORD_TYPE. */
tem = build_unc_object_type (gnu_template_type, tem,
create_concat_name (gnat_name, "XUT"),
debug_info_p);
- shift_unc_components_for_thin_pointers (tem);
SET_TYPE_UNCONSTRAINED_ARRAY (tem, gnu_type);
TYPE_OBJECT_RECORD_TYPE (gnu_type) = tem;