* iresolve.c (gfc_resolve_mvbits): New function.
(gfc_resolve_random_number): Remove empty line at end of function.
+ * trans-const.c (gfc_build_cstring_const): New function.
+ (gfc_init_cst): Use new function.
+ * trans-const.h (gfc_build_cstring_const): Add prototype.
+ * trans-io.c (set_string, set_error_locus): Use new function.
+ * trans-stmt.c (gfc_trans_goto): Use new function.
+
+ PR fortran/17708
+ * parse.c (accept_statement): Don't treat END DO like END IF and
+ END SELECT.
+ (parse_do_block): Generate possible END DO label inside END DO
+ block.
+
+
2004-10-04 Erik Schnetter <schnetter@aei.mpg.de>
* scanner.c (preprocessor_line): Accept preprocessor lines without
construct. */
case ST_ENDIF:
- case ST_ENDDO:
case ST_END_SELECT:
if (gfc_statement_label != NULL)
{
&& 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;
PR fortran/17631
* gfortran.fortran-torture/execute/intrinsic_mvbits.f90: New test.
+ PR fortran/17708
+ * gfortran.dg/pr17708.f90: New test.
+
2004-10-04 Chao-ying Fu <fu@mips.com>
* gcc.dg/vect/pr16105.c: Enable for mipsisa64*-*-*.