aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/parse.c')
-rw-r--r--gcc/fortran/parse.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index cfcbee9..6f88aba 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -1033,7 +1033,6 @@ accept_statement (gfc_statement st)
construct. */
case ST_ENDIF:
- case ST_ENDDO:
case ST_END_SELECT:
if (gfc_statement_label != NULL)
{
@@ -2003,7 +2002,13 @@ loop:
&& s.ext.end_do_label != gfc_statement_label)
gfc_error_now
("Statement label in ENDDO at %C doesn't match DO label");
- /* Fall through */
+
+ if (gfc_statement_label != NULL)
+ {
+ new_st.op = EXEC_NOP;
+ add_statement ();
+ }
+ break;
case ST_IMPLIED_ENDDO:
break;