aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/st.c
diff options
context:
space:
mode:
authorTobias Schlüter <tobi@gcc.gnu.org>2009-03-29 19:15:48 +0200
committerTobias Schlüter <tobi@gcc.gnu.org>2009-03-29 19:15:48 +0200
commitd80c695ff0da09ebbb0d7b4370396e36d4e58180 (patch)
tree932f0cbc2ec95ee8d7f4af821c8414255f18bcaa /gcc/fortran/st.c
parenteeae74a1a98590abc9eda18b198ff92f473f2e36 (diff)
downloadgcc-d80c695ff0da09ebbb0d7b4370396e36d4e58180.zip
gcc-d80c695ff0da09ebbb0d7b4370396e36d4e58180.tar.gz
gcc-d80c695ff0da09ebbb0d7b4370396e36d4e58180.tar.bz2
re PR fortran/38507 (Bogus Warning: Deleted feature: GOTO jumps to END of construct)
fortran/ PR fortran/38507 * gfortran.h (gfc_st_label): Fix comment. (gfc_exec_op): Add statement code EXEC_END_BLOCK for end of block. * parse.c (accept_statement): Use EXEC_END_BLOCK for END IF and END SELECT with labels. (check_do_closure): Fix formatting. (parse_do_block): Fix typo in error message. * resolve.c (code_stack): Remove tail member. Update comment to new use of reachable_labels. (reachable_labels): Rename to ... (find_reachable_labels): ... this. Overhaul. Update preceding comment. (resolve_branch): Fix comment preceding function. Rewrite. (resolve_code): Update call to find_reachable_labels. Add code to deal with EXEC_END_BLOCK. * st.c (gfc_free_statement): Add code to deal with EXEC_END_BLOCK. * trans.c (gfc_trans_code): Likewise. testsuite/ * do_4.f: New. * goto_2.f90: Correct expected warnings. * goto_4.f90: Likewise. * goto_5.f90: New. From-SVN: r145245
Diffstat (limited to 'gcc/fortran/st.c')
-rw-r--r--gcc/fortran/st.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/st.c b/gcc/fortran/st.c
index 18f1b6d..4f82050 100644
--- a/gcc/fortran/st.c
+++ b/gcc/fortran/st.c
@@ -1,5 +1,5 @@
/* Build executable statement trees.
- Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008
+ Copyright (C) 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
Contributed by Andy Vaught
@@ -88,6 +88,7 @@ gfc_free_statement (gfc_code *p)
switch (p->op)
{
case EXEC_NOP:
+ case EXEC_END_BLOCK:
case EXEC_ASSIGN:
case EXEC_INIT_ASSIGN:
case EXEC_GOTO: