summaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-array.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans-array.h')
-rw-r--r--gcc/fortran/trans-array.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/gcc/fortran/trans-array.h b/gcc/fortran/trans-array.h
index d0309b27831..1025b9f75eb 100644
--- a/gcc/fortran/trans-array.h
+++ b/gcc/fortran/trans-array.h
@@ -32,7 +32,8 @@ void gfc_set_loop_bounds_from_array_spec (gfc_interface_mapping *,
/* Generate code to create a temporary array. */
tree gfc_trans_create_temp_array (stmtblock_t *, stmtblock_t *, gfc_ss *,
- tree, tree, bool, bool, bool, locus *);
+ tree, tree, bool, bool, bool,
+ gfc_typespec *, tree, locus *);
/* Generate function entry code for allocation of compiler allocated array
variables. */
@@ -120,13 +121,13 @@ void gfc_trans_scalarizing_loops (gfc_loopinfo *, stmtblock_t *);
/* Mark the end of the main loop body and the start of the copying loop. */
void gfc_trans_scalarized_loop_boundary (gfc_loopinfo *, stmtblock_t *);
/* Initialize the scalarization loop parameters. */
-void gfc_conv_loop_setup (gfc_loopinfo *, locus *);
+void gfc_conv_loop_setup (gfc_loopinfo *, locus *, gfc_typespec *ts);
/* Set each array's delta. */
void gfc_set_delta (gfc_loopinfo *);
/* Resolve array assignment dependencies. */
void gfc_conv_resolve_dependencies (gfc_loopinfo *, gfc_ss *, gfc_ss *);
/* Build a null array descriptor constructor. */
-tree gfc_build_null_descriptor (tree);
+tree gfc_build_null_descriptor (tree, int, int, gfc_typespec *);
/* Get a single array element. */
void gfc_conv_array_ref (gfc_se *, gfc_array_ref *, gfc_expr *, locus *);
@@ -148,8 +149,10 @@ tree gfc_conv_array_data (tree);
tree gfc_conv_array_offset (tree);
/* Return either an INT_CST or an expression for that part of the descriptor. */
tree gfc_conv_array_stride (tree, int);
+tree gfc_conv_array_sm (tree, int);
tree gfc_conv_array_lbound (tree, int);
tree gfc_conv_array_ubound (tree, int);
+tree gfc_conv_array_extent (tree, int);
/* Set cobounds of an array. */
void gfc_trans_array_cobounds (tree, stmtblock_t *, const gfc_symbol *);
@@ -164,13 +167,25 @@ tree gfc_get_descriptor_dimension (tree);
tree gfc_conv_descriptor_stride_get (tree, tree);
tree gfc_conv_descriptor_lbound_get (tree, tree);
tree gfc_conv_descriptor_ubound_get (tree, tree);
+tree gfc_conv_descriptor_sm_get (tree, tree);
+tree gfc_conv_descriptor_extent_get (tree, tree);
tree gfc_conv_descriptor_token (tree);
+tree gfc_conv_descriptor_elem_len_get (tree);
+void gfc_conv_descriptor_elem_len_set (stmtblock_t *, tree, tree);
+void gfc_conv_descriptor_rank_set (stmtblock_t *, tree, int);
+void gfc_conv_descriptor_version_set (stmtblock_t *, tree);
+void gfc_conv_descriptor_attr_set (stmtblock_t *, tree, int);
+
+tree gfc_data_field_from_base_field (tree);
+tree gfc_dimension_field_from_base_field (tree);
void gfc_conv_descriptor_data_set (stmtblock_t *, tree, tree);
void gfc_conv_descriptor_offset_set (stmtblock_t *, tree, tree);
void gfc_conv_descriptor_stride_set (stmtblock_t *, tree, tree, tree);
void gfc_conv_descriptor_lbound_set (stmtblock_t *, tree, tree, tree);
void gfc_conv_descriptor_ubound_set (stmtblock_t *, tree, tree, tree);
+void gfc_conv_descriptor_sm_set (stmtblock_t *, tree, tree, tree);
+void gfc_conv_descriptor_extent_set (stmtblock_t *, tree, tree, tree);
/* Shift lower bound of descriptor, updating ubound and offset. */
void gfc_conv_shift_descriptor_lbound (stmtblock_t*, tree, int, tree);