aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/decl.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-05-10 21:52:45 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-05-10 21:52:45 +0000
commitc679a9157beb871bcb483d1d78d8e62f83dde940 (patch)
tree5b71d0685e03c2017302b6c00b900592ddfc9e32 /gcc/ada/gcc-interface/decl.c
parent5a40306bb6bf3f305bc3b6e265aa583c69049449 (diff)
downloadgcc-c679a9157beb871bcb483d1d78d8e62f83dde940.zip
gcc-c679a9157beb871bcb483d1d78d8e62f83dde940.tar.gz
gcc-c679a9157beb871bcb483d1d78d8e62f83dde940.tar.bz2
exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables built for interfaces.
* exp_disp.adb (Make_Tags): Mark the imported view of dispatch tables built for interfaces. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Use imported_p instead of Is_Imported when considering constants. Do not promote alignment of exported objects. <E_Record_Subtype>: Strip all suffixes for dispatch table entities. From-SVN: r159247
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 fba552b..3118cfc 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -561,7 +561,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
== N_Object_Declaration)
&& Present (Expression (Declaration_Node (gnat_entity))))
|| Present (Renamed_Object (gnat_entity))
- || Is_Imported (gnat_entity)));
+ || imported_p));
bool inner_const_flag = const_flag;
bool static_p = Is_Statically_Allocated (gnat_entity);
bool mutable_p = false;
@@ -742,6 +742,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
&& kind != E_Out_Parameter
&& Is_Composite_Type (Etype (gnat_entity))
&& !Is_Constr_Subt_For_UN_Aliased (Etype (gnat_entity))
+ && !Is_Exported (gnat_entity)
&& !imported_p
&& No (Renamed_Object (gnat_entity))
&& No (Address_Clause (gnat_entity))))
@@ -1000,7 +1001,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
if ((Treat_As_Volatile (gnat_entity)
|| (!const_flag
&& (Is_Exported (gnat_entity)
- || Is_Imported (gnat_entity)
+ || imported_p
|| Present (Address_Clause (gnat_entity)))))
&& !TYPE_VOLATILE (gnu_type))
gnu_type = build_qualified_type (gnu_type,
@@ -2984,9 +2985,9 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
{
char *p;
Get_Encoded_Name (gnat_entity);
- p = strrchr (Name_Buffer, '_');
+ p = strchr (Name_Buffer, '_');
gcc_assert (p);
- strcpy (p+1, "dtS");
+ strcpy (p+2, "dtS");
gnu_entity_name = get_identifier (Name_Buffer);
}