From: Eric Botcazou Date: Thu, 7 Jul 2005 09:41:56 +0000 (+0200) Subject: decl.c (gnat_to_gnu_entity): Do not strip the padding type if the parameter is not... X-Git-Tag: misc/cutover-cvs2svn~1885 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=69601f746d42adbf89b28a162cdbad0fa23de354;p=thirdparty%2Fgcc.git decl.c (gnat_to_gnu_entity): Do not strip the padding type if the parameter is not passed by copy but... 2005-07-07 Eric Botcazou * decl.c (gnat_to_gnu_entity) : Do not strip the padding type if the parameter is not passed by copy but reference by default. From-SVN: r101693 --- diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c index fb6d002da074..88fef2157d39 100644 --- a/gcc/ada/decl.c +++ b/gcc/ada/decl.c @@ -3426,8 +3426,12 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition) if (TREE_CODE (gnu_param_type) == RECORD_TYPE && TYPE_IS_PADDING_P (gnu_param_type) && (req_by_ref || Has_Foreign_Convention (gnat_entity) - || !must_pass_by_ref (TREE_TYPE (TYPE_FIELDS - (gnu_param_type))))) + || (!must_pass_by_ref (TREE_TYPE (TYPE_FIELDS + (gnu_param_type))) + && (req_by_copy + || !default_pass_by_ref (TREE_TYPE + (TYPE_FIELDS + (gnu_param_type))))))) gnu_param_type = TREE_TYPE (TYPE_FIELDS (gnu_param_type)); /* If this is an IN parameter it is read-only, so make a variant