diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2005-06-16 10:56:46 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-06-16 10:56:46 +0200 |
commit | ea6ac8593835b4fbff1a4f163a0e652bfa612852 (patch) | |
tree | eac412113966b8189ec46c74c4184fe9071335ba /gcc/ada/gigi.h | |
parent | 8704d4b30e3eace58fc9506cf3533b15835c784a (diff) | |
download | gcc-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.h | 7 |
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. */ |