aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gigi.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2005-06-16 10:56:46 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-06-16 10:56:46 +0200
commitea6ac8593835b4fbff1a4f163a0e652bfa612852 (patch)
treeeac412113966b8189ec46c74c4184fe9071335ba /gcc/ada/gigi.h
parent8704d4b30e3eace58fc9506cf3533b15835c784a (diff)
downloadgcc-ea6ac8593835b4fbff1a4f163a0e652bfa612852.zip
gcc-ea6ac8593835b4fbff1a4f163a0e652bfa612852.tar.gz
gcc-ea6ac8593835b4fbff1a4f163a0e652bfa612852.tar.bz2
re PR ada/20515 ("stdcall" imports are not handled correctly)
2005-06-10 Eric Botcazou <ebotcazou@adacore.com> Olivier Hainque <hainque@adacore.com> Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Pascal Obry <obry@adacore.com> * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE. * trans.c (call_to_gnu): Issue a warning for users of Starlet when making a temporary around a procedure call because of non-addressable actual parameter. (process_freeze_entity): If entity is a private type, capture size information that may have been computed for the full view. (tree_transform, case N_Allocator): If have initializing expression, check type for Has_Constrained_Partial_View and pass that to build_allocator. (tree_transform, case N_Return_Statement): Pass extra arg to build_allocator. * decl.c (annotate_value): Remove early return if -gnatR is not specified. (gnat_to_gnu_field): Don't make a packable type for a component clause if the position is byte aligned, the field is aliased, and the clause size isn't a multiple of the packable alignment. It serves no useful purpose packing-wise and would be rejected later on. (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator. PR ada/20515 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES instead. (create_concat_name): Idem. From-SVN: r101070
Diffstat (limited to 'gcc/ada/gigi.h')
-rw-r--r--gcc/ada/gigi.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h
index 79fdf51..fe2f110 100644
--- a/gcc/ada/gigi.h
+++ b/gcc/ada/gigi.h
@@ -709,10 +709,13 @@ extern tree build_call_alloc_dealloc (tree gnu_obj, tree gnu_size,
RESULT_TYPE, which must be some type of pointer. Return the tree.
GNAT_PROC and GNAT_POOL optionally give the procedure to call and
the storage pool to use. GNAT_NODE is used to provide an error
- location for restriction violations messages. */
+ location for restriction violations messages. If IGNORE_INIT_TYPE is
+ true, ignore the type of INIT for the purpose of determining the size;
+ this will cause the maximum size to be allocated if TYPE is of
+ self-referential size. */
extern tree build_allocator (tree type, tree init, tree result_type,
Entity_Id gnat_proc, Entity_Id gnat_pool,
- Node_Id gnat_node);
+ Node_Id gnat_node, bool);
/* Fill in a VMS descriptor for EXPR and return a constructor for it.
GNAT_FORMAL is how we find the descriptor record. */