]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/fortran/array.cc
re PR fortran/48820 (TR 29113: Implement parts needed for MPI 3)
authorTobias Burnus <burnus@net-b.de>
Fri, 20 Jul 2012 05:56:37 +0000 (07:56 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Fri, 20 Jul 2012 05:56:37 +0000 (07:56 +0200)
commitc62c6622bcf2906969975f5741072d842c667851
tree09b3829b3012cefb99599fd8befc8055b9e1d6b2
parent02fe175c38c7e2a6043548b6f1500c4cb2fa30e7
re PR fortran/48820 (TR 29113: Implement parts needed for MPI 3)

2012-07-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48820
        * array.c (match_array_element_spec, gfc_match_array_spec,
        spec_size, gfc_array_dimen_size): Add support for
        assumed-rank arrays.
        * check.c (dim_rank_check): Ditto.
        * class.c (gfc_add_component_ref): Ditto.
        (gfc_build_class_symbol): Regard assumed-rank arrays
        as having GFC_MAX_DIMENSIONS. And build extra class
        container for a scalar pointer class.
        * decl.c (merge_array_spec): Add assert.
        * dump-parse-tree.c (show_array_spec): Add support for
        assumed-rank arrays.
        * expr.c (gfc_is_simply_contiguous): Ditto.
        * gfortran.h (array_type): Ditto.
        (gfc_array_spec, gfc_expr): Add comment to "rank" field.
        * interface.c (compare_type_rank, argument_rank_mismatch,
        compare_parameter, gfc_procedure_use): Ditto.
        (compare_actual_formal): Fix NULL() to optional-dummy
        handling for polymorphic dummies.
        * module.c (mio_typespec): Add support for
        assumed-rank arrays.
        * resolve.c (resolve_formal_arglist, resolve_actual_arglist,
        resolve_elemental_actual, resolve_global_procedure,
        expression_shape, resolve_variable, update_ppc_arglist,
        check_typebound_baseobject, gfc_resolve_expr,
        resolve_fl_var_and_proc, gfc_resolve_finalizers,
        resolve_typebound_procedure, resolve_symbol): Ditto.
        (assumed_type_expr_allowed): Remove static variable.
        (actual_arg, first_actual_arg): New static variables.
        * simplify.c (simplify_bound, gfc_simplify_range): Add
        support for assumed-rank arrays.
        * trans-array.c (gfc_conv_array_parameter): Ditto.
        (gfc_get_descriptor_dimension): New function, which returns
        the descriptor.
        (gfc_conv_descriptor_dimension): Use it.
        (gfc_conv_descriptor_stride_get, gfc_conv_array_parameter):
        Handle GFC_ARRAY_ASSUMED_RANK_CONT and AS_ASSUMED_RANK.
        * trans-array.h (gfc_get_descriptor_dimension): New prototype.
        * trans-decl. (gfc_build_dummy_array_decl,
        gfc_trans_deferred_vars, add_argument_checking): Add
        support for assumed-rank arrays.
        * trans-expr.c (gfc_conv_expr_present, gfc_conv_variable,
        gfc_conv_procedure_call): Ditto.
        (get_scalar_to_descriptor_type, class_array_data_assign,
        conv_scalar_to_descriptor): New static functions.
        (gfc_conv_derived_to_class, gfc_conv_class_to_class): Use
        them.
        * trans-intrinsic.c (get_rank_from_desc): New function.
        (gfc_conv_intrinsic_rank, gfc_conv_associated): Use it.
        * trans-types.c (gfc_array_descriptor_base_caf,
        gfc_array_descriptor_base): Make space for scalar array.
        (gfc_is_nodesc_array, gfc_is_nodesc_array,
        gfc_build_array_type, gfc_get_array_descriptor_base): Add
        support for assumed-rank arrays.
        * trans.h (gfc_array_kind): Add GFC_ARRAY_ASSUMED_RANK and
        GFC_ARRAY_ASSUMED_RANK_CONT.

2012-07-20  Tobias Burnus  <burnus@net-b.de>

        PR fortran/48820
        * gfortran.dg/assumed_type_3.f90: Update dg-error.
        * gfortran.dg/assumed_rank_1.f90: New.
        * gfortran.dg/assumed_rank_1_c.c: New.
        * gfortran.dg/assumed_rank_2.f90: New.
        * gfortran.dg/assumed_rank_4.f90: New.
        * gfortran.dg/assumed_rank_5.f90: New.
        * gfortran.dg/assumed_rank_6.f90: New.
        * gfortran.dg/assumed_rank_7.f90: New.
        * gfortran.dg/assumed_rank_8.f90: New.
        * gfortran.dg/assumed_rank_8_c.c: New.
        * gfortran.dg/assumed_rank_9.f90: New.
        * gfortran.dg/assumed_rank_10.f90: New.
        * gfortran.dg/assumed_rank_12.f90: New.

From-SVN: r189700
33 files changed:
gcc/fortran/ChangeLog
gcc/fortran/array.c
gcc/fortran/check.c
gcc/fortran/class.c
gcc/fortran/decl.c
gcc/fortran/dump-parse-tree.c
gcc/fortran/expr.c
gcc/fortran/gfortran.h
gcc/fortran/interface.c
gcc/fortran/module.c
gcc/fortran/resolve.c
gcc/fortran/simplify.c
gcc/fortran/trans-array.c
gcc/fortran/trans-array.h
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/fortran/trans-intrinsic.c
gcc/fortran/trans-types.c
gcc/fortran/trans.h
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/assumed_rank_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_10.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_12.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_1_c.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_4.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_5.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_6.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_7.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_8.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_8_c.c [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_rank_9.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/assumed_type_3.f90