re PR fortran/50071 (gfortran does not distinguish labels in different type scoping...
authorMikael Morin <mikael.morin@sfr.fr>
Thu, 18 Aug 2011 22:42:38 +0000 (00:42 +0200)
committerMikael Morin <mikael@gcc.gnu.org>
Thu, 18 Aug 2011 22:42:38 +0000 (22:42 +0000)
commitdf1a69f6a85e6c82e206388daa459f06d2e92876
treecd909034298135072ec57ac3e175166acb6dba01
parenta7ad08aef73fd2c4219a31a419e41ce2e5408a09
re PR fortran/50071 (gfortran does not distinguish labels in different type scoping units)

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/50071
* gfortran.h (gfc_exec_op): New constant EXEC_END_NESTED_BLOCK.
* parse.c (check_statement_label): Accept ST_END_BLOCK and
ST_END_ASSOCIATE as valid branch target.
(accept_statement): Change EXEC_END_BLOCK to EXEC_END_NESTED_BLOCK.
Add EXEC_END_BLOCK code in the ST_END_BLOCK and ST_END_ASSOCIATE cases.
* resolve.c (find_reachable_labels): Change EXEC_END_BLOCK to
EXEC_END_NESTED_BLOCK.
(resolve_branch): Ditto.
(resolve_code): Add EXEC_END_NESTED_BLOCK case.
* st.c (gfc_free_statement): Ditto.
* trans.c (trans_code): Ditto.

2011-08-19  Mikael Morin  <mikael.morin@sfr.fr>

PR fortran/50071
* gfortran.dg/end_block_label_1.f90: New test.
* gfortran.dg/end_associate_label_1.f90: New test.

From-SVN: r177885
gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/parse.c
gcc/fortran/resolve.c
gcc/fortran/st.c
gcc/fortran/trans.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/end_associate_label_1.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/end_block_label_1.f90 [new file with mode: 0644]