From 0c70025900f1242f8aa7822e1f681bb76ec12893 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Sun, 10 Oct 2010 11:26:16 +0000 Subject: ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro. * gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro. * gcc-interface/gigi.h (annotate_object): Add BY_DOUBLE_REF parameter. * gcc-interface/decl.c (annotate_object): Likewise and handle it. (gnat_to_gnu_entity): Adjust calls to annotate_object. (gnat_to_gnu_param): If fat pointer types are passed by reference on the target, pass them by explicit reference. * gcc-interface/misc.c (default_pass_by_ref): Fix type of constant. * gcc-interface/trans.c (Identifier_to_gnu): Do DECL_BY_DOUBLE_REF_P. (Subprogram_Body_to_gnu): Adjust call to annotate_object. (call_to_gnu): Handle DECL_BY_DOUBLE_REF_P. * gcc-interface/utils.c (convert_vms_descriptor): Add BY_REF parameter and handle it. (build_function_stub): Iterate on the parameters of the subprogram in lieu of on the argument types. Adjust call to convert_vms_descriptor. From-SVN: r165250 --- gcc/ada/gcc-interface/misc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'gcc/ada/gcc-interface/misc.c') diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c index 07b3acf..0dd29a6 100644 --- a/gcc/ada/gcc-interface/misc.c +++ b/gcc/ada/gcc-interface/misc.c @@ -619,8 +619,8 @@ gnat_get_subrange_bounds (const_tree gnu_type, tree *lowval, tree *highval) *highval = TYPE_MAX_VALUE (gnu_type); } -/* GNU_TYPE is a type. Determine if it should be passed by reference by - default. */ +/* GNU_TYPE is the type of a subprogram parameter. Determine if it should be + passed by reference by default. */ bool default_pass_by_ref (tree gnu_type) @@ -632,7 +632,7 @@ default_pass_by_ref (tree gnu_type) is an In Out parameter, but it's probably best to err on the side of passing more things by reference. */ - if (pass_by_reference (NULL, TYPE_MODE (gnu_type), gnu_type, 1)) + if (pass_by_reference (NULL, TYPE_MODE (gnu_type), gnu_type, true)) return true; if (targetm.calls.return_in_memory (gnu_type, NULL_TREE)) @@ -647,8 +647,8 @@ default_pass_by_ref (tree gnu_type) return false; } -/* GNU_TYPE is the type of a subprogram parameter. Determine from the type if - it should be passed by reference. */ +/* GNU_TYPE is the type of a subprogram parameter. Determine if it must be + passed by reference. */ bool must_pass_by_ref (tree gnu_type) -- cgit v1.1