-
- Downloads
re PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))
2010-06-10 Daniel Kraft <d@domob.eu> PR fortran/38936 * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE. (struct gfc_symbol): New field `assoc'. (struct gfc_association_list): New struct. (struct gfc_code): New struct `block' in union, move `ns' there and add association list. (gfc_free_association_list): New method. (gfc_has_vector_subscript): Made public; * match.h (gfc_match_associate): New method. * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE. * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE. * interface.c (gfc_has_vector_subscript): Made public. (compare_actual_formal): Rename `has_vector_subscript' accordingly. * match.c (gfc_match_associate): New method. (gfc_match_select_type): Change reference to gfc_code's `ns' field. * primary.c (match_variable): Don't allow names associated to expr here. * parse.c (decode_statement): Try matching ASSOCIATE statement. (case_exec_markers, case_end): Add ASSOCIATE statement. (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE. (parse_associate): New method. (parse_executable): Handle ST_ASSOCIATE. (parse_block_construct): Change reference to gfc_code's `ns' field. * resolve.c (resolve_select_type): Ditto. (resolve_code): Ditto. (resolve_block_construct): Ditto and add comment. (resolve_select_type): Set association list in generated BLOCK to NULL. (resolve_symbol): Resolve associate names. * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field and free association list. (gfc_free_association_list): New method. * symbol.c (gfc_new_symbol): NULL new field `assoc'. * trans-stmt.c (gfc_trans_block_construct): Change reference to gfc_code's `ns' field. 2010-06-10 Daniel Kraft <d@domob.eu> PR fortran/38936 * gfortran.dg/associate_1.f03: New test. * gfortran.dg/associate_2.f95: New test. * gfortran.dg/associate_3.f03: New test. * gfortran.dg/associate_4.f08: New test. From-SVN: r160550
Showing
- gcc/fortran/ChangeLog 36 additions, 0 deletionsgcc/fortran/ChangeLog
- gcc/fortran/decl.c 20 additions, 5 deletionsgcc/fortran/decl.c
- gcc/fortran/gfortran.h 35 additions, 4 deletionsgcc/fortran/gfortran.h
- gcc/fortran/interface.c 3 additions, 3 deletionsgcc/fortran/interface.c
- gcc/fortran/match.c 93 additions, 1 deletiongcc/fortran/match.c
- gcc/fortran/match.h 1 addition, 0 deletionsgcc/fortran/match.h
- gcc/fortran/parse.c 102 additions, 6 deletionsgcc/fortran/parse.c
- gcc/fortran/parse.h 1 addition, 1 deletiongcc/fortran/parse.h
- gcc/fortran/primary.c 6 additions, 0 deletionsgcc/fortran/primary.c
- gcc/fortran/resolve.c 20 additions, 7 deletionsgcc/fortran/resolve.c
- gcc/fortran/st.c 14 additions, 1 deletiongcc/fortran/st.c
- gcc/fortran/symbol.c 1 addition, 0 deletionsgcc/fortran/symbol.c
- gcc/fortran/trans-stmt.c 1 addition, 1 deletiongcc/fortran/trans-stmt.c
- gcc/testsuite/ChangeLog 8 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gfortran.dg/associate_1.f03 49 additions, 0 deletionsgcc/testsuite/gfortran.dg/associate_1.f03
- gcc/testsuite/gfortran.dg/associate_2.f95 12 additions, 0 deletionsgcc/testsuite/gfortran.dg/associate_2.f95
- gcc/testsuite/gfortran.dg/associate_3.f03 41 additions, 0 deletionsgcc/testsuite/gfortran.dg/associate_3.f03
- gcc/testsuite/gfortran.dg/associate_4.f08 12 additions, 0 deletionsgcc/testsuite/gfortran.dg/associate_4.f08
Loading
Please register or sign in to comment