diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-05-10 21:52:45 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-05-10 21:52:45 +0000 |
commit | c679a9157beb871bcb483d1d78d8e62f83dde940 (patch) | |
tree | 5b71d0685e03c2017302b6c00b900592ddfc9e32 /gcc/ada/gcc-interface/decl.c | |
parent | 5a40306bb6bf3f305bc3b6e265aa583c69049449 (diff) | |
download | gcc-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.c | 9 |
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); } |