-
- Downloads
array.c (spec_dimen_size): Check for the presence of expressions for the bounds.
2019-09-01 Paul Thomas <pault@gcc.gnu.org> * array.c (spec_dimen_size): Check for the presence of expressions for the bounds. * decl.c (gfc_match_end): Add case COMP_SELECT_RANK. * dump-parse-tree.c(show_symbol): Show the arrayspec of class entities. (show_code_node): Show the code for SELECT_RANK. * expr.c (gfc_check_vardef_context): Omit the context of variable definition for select rank associate names since the ASSUMED RANK throws. * gfortran.h : Add ST_SELECT_RANK and ST_RANK to enum gfc_statement. Add select_rank_temporary to symbol attribute structure. Add EXEC_SELECT_RANK to enum gfc_exec_op. * match.c (match_exit_cycle): Add COMP_SELECT_RANK. (copy_ts_from_selector_to_associate): Add as special case for assumed rank class variables. (select_intrinsic_set_tmp): Clean up the code by using symbols for references to the temporary and the selector. (select_type_set_tmp): Ditto. (select_rank_set_tmp): New function. (gfc_match_select_rank): New function. (gfc_match_rank_is): New function. * match.h : Add prototypes for gfc_match_select_rank and gfc_match_rank_is. * parse.c (decode_statement): Attempt to match select_rank and rank statements. (next_statement, gfc_ascii_statement): Add ST_SELECT_RANK. (parse_select_rank_block): New function. (parse_executable): Parse select rank block for ST_SELECT_RANK. * parse.h : Add COMP_SELECT_RANK to enum gfc_compile_state. * resolve.c (resolve_variable): Exclude select_rank_temporaries from the check on use of ASSUMED RANK. (gfc_resolve_expr): Make sure that unlimited polymorphic select rank temporaries expressions are not resolved again after being successfully resolved. (resolve_assoc_var): Do not do the rank check for select rank temporaries. (resolve_select_rank): New function. (gfc_resolve_blocks): Deal with case EXEC_SELECT_RANK. (resolve_symbol): Exclude select rank temporaries for check on use of ASSUMED RANK. * st.c (gfc_free_statement): Include EXEC_SELECT_RANK. * trans-array.c (gfc_conv_array_ref): Select rank temporaries may have dimen == 0. (gfc_conv_expr_descriptor): Zero the offset of select rank temporaries. * trans-stmt.c (copy_descriptor): New function. (trans_associate_var): Add code to associate select rank temps. (gfc_trans_select_rank_cases): New function. (gfc_trans_select_rank): New function. * trans-stmt.h : Add prototype for gfc_trans_select_rank. trans.c (trans_code): Add select rank case. 2019-09-01 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/select_rank_1.f90 : New test. * gfortran.dg/select_rank_2.f90 : New test. From-SVN: r275269
Showing
- gcc/fortran/ChangeLog 55 additions, 1 deletiongcc/fortran/ChangeLog
- gcc/fortran/array.c 5 additions, 1 deletiongcc/fortran/array.c
- gcc/fortran/decl.c 1 addition, 0 deletionsgcc/fortran/decl.c
- gcc/fortran/dump-parse-tree.c 15 additions, 5 deletionsgcc/fortran/dump-parse-tree.c
- gcc/fortran/expr.c 1 addition, 1 deletiongcc/fortran/expr.c
- gcc/fortran/gfortran.h 6 additions, 6 deletionsgcc/fortran/gfortran.h
- gcc/fortran/match.c 386 additions, 41 deletionsgcc/fortran/match.c
- gcc/fortran/match.h 2 additions, 0 deletionsgcc/fortran/match.h
- gcc/fortran/parse.c 91 additions, 4 deletionsgcc/fortran/parse.c
- gcc/fortran/parse.h 2 additions, 1 deletiongcc/fortran/parse.h
- gcc/fortran/resolve.c 198 additions, 12 deletionsgcc/fortran/resolve.c
- gcc/fortran/st.c 1 addition, 0 deletionsgcc/fortran/st.c
- gcc/fortran/trans-array.c 7 additions, 1 deletiongcc/fortran/trans-array.c
- gcc/fortran/trans-stmt.c 311 additions, 4 deletionsgcc/fortran/trans-stmt.c
- gcc/fortran/trans-stmt.h 1 addition, 0 deletionsgcc/fortran/trans-stmt.h
- gcc/fortran/trans.c 4 additions, 0 deletionsgcc/fortran/trans.c
- gcc/testsuite/ChangeLog 5 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gfortran.dg/select_rank_1.f90 179 additions, 0 deletionsgcc/testsuite/gfortran.dg/select_rank_1.f90
- gcc/testsuite/gfortran.dg/select_rank_2.f90 85 additions, 0 deletionsgcc/testsuite/gfortran.dg/select_rank_2.f90
Loading
Please register or sign in to comment