diff options
author | Doug Rupp <rupp@adacore.com> | 2008-07-30 13:06:45 +0000 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2008-07-30 15:06:45 +0200 |
commit | 6ca2b0a0388c2944e222aab817db7f09bd2f96c4 (patch) | |
tree | 6c15c021426f1cd845672d23d0d9b84ea0fdac47 /gcc/ada/gcc-interface/gigi.h | |
parent | 002b2ad6a99fb1e713fb27fffdfc2135319a5a0c (diff) | |
download | gcc-6ca2b0a0388c2944e222aab817db7f09bd2f96c4.zip gcc-6ca2b0a0388c2944e222aab817db7f09bd2f96c4.tar.gz gcc-6ca2b0a0388c2944e222aab817db7f09bd2f96c4.tar.bz2 |
gigi.h (build_vms_descriptor64): New function prototype.
2008-07-30 Doug Rupp <rupp@adacore.com>
* gigi.h (build_vms_descriptor64): New function prototype.
(fill_vms_descriptor): Modified function prototype.
* utils.c (build_vms_descriptor64): New function.
* utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
* trans.c (call_to_gnu): Call fill_vms_descriptor with new third
argument.
* decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
64bit and 32bit descriptor and save the 64bit version as an alternate
TREE_TYPE in the parameter.
(make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
thin pointer.
* ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
From-SVN: r138307
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index aaf5e7f..685bb38 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -678,7 +678,7 @@ extern void end_subprog_body (tree body, bool elab_p); Return a constructor for the template. */ extern tree build_template (tree template_type, tree array_type, tree expr); -/* Build a VMS descriptor from a Mechanism_Type, which must specify +/* Build a 32bit VMS descriptor from a Mechanism_Type, which must specify a descriptor type, and the GCC type of an object. Each FIELD_DECL in the type contains in its DECL_INITIAL the expression to use when a constructor is made for the type. GNAT_ENTITY is a gnat node used @@ -687,6 +687,10 @@ extern tree build_template (tree template_type, tree array_type, tree expr); extern tree build_vms_descriptor (tree type, Mechanism_Type mech, Entity_Id gnat_entity); +/* Build a 64bit VMS descriptor from a Mechanism_Type. See above. */ +extern tree build_vms_descriptor64 (tree type, Mechanism_Type mech, + Entity_Id gnat_entity); + /* Build a stub for the subprogram specified by the GCC tree GNU_SUBPROG and the GNAT node GNAT_SUBPROG. */ extern void build_function_stub (tree gnu_subprog, Entity_Id gnat_subprog); @@ -844,9 +848,9 @@ extern tree build_allocator (tree type, tree init, tree result_type, 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. */ - -extern tree fill_vms_descriptor (tree expr, Entity_Id gnat_formal); + GNAT_FORMAL is how we find the descriptor record. GNAT_ACTUAL is how we + find the size of the allocator. */ +extern tree fill_vms_descriptor (tree expr, Entity_Id gnat_formal, Node_Id gnat_actual); /* Indicate that we need to make the address of EXPR_NODE and it therefore should not be allocated in a register. Return true if successful. */ |