diff options
Diffstat (limited to 'gcc/fortran/trans-array.h')
-rw-r--r-- | gcc/fortran/trans-array.h | 21 |
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); |