From: Janus Weil Date: Sun, 12 Jan 2014 11:08:31 +0000 (+0100) Subject: re PR fortran/58026 ([F03] Bad error recovery for allocatable component of undeclared... X-Git-Tag: releases/gcc-4.9.0~1695 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a1b80ec7e0e9cea1107b77bdd1424ab853cda5c7;p=thirdparty%2Fgcc.git re PR fortran/58026 ([F03] Bad error recovery for allocatable component of undeclared type) 2014-01-12 Janus Weil PR fortran/58026 * decl.c (gfc_match_data_decl): Improve error recovery. 2014-01-12 Janus Weil PR fortran/58026 * gfortran.dg/alloc_comp_basics_6.f90: New. From-SVN: r206564 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index bb8c04c5a8a8..f2f1a853ddfc 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2014-01-12 Janus Weil + + PR fortran/58026 + * decl.c (gfc_match_data_decl): Improve error recovery. + 2014-01-09 Tobias Burnus * cpp.c (gfc_cpp_handle_option): Add missing break. diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index e8ac941a0825..8831b1997bd6 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -4287,12 +4287,10 @@ gfc_match_data_decl (void) || current_ts.u.derived->attr.zero_comp)) goto ok; - /* Now we have an error, which we signal, and then fix up - because the knock-on is plain and simple confusing. */ - gfc_error_now ("Derived type at %C has not been previously defined " - "and so cannot appear in a derived type definition"); - current_attr.pointer = 1; - goto ok; + gfc_error ("Derived type at %C has not been previously defined " + "and so cannot appear in a derived type definition"); + m = MATCH_ERROR; + goto cleanup; } ok: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3f33d768703c..9d82746f5796 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-01-12 Janus Weil + + PR fortran/58026 + * gfortran.dg/alloc_comp_basics_6.f90: New. + 2014-01-11 Steven G. Kargl PR fortran/59700 diff --git a/gcc/testsuite/gfortran.dg/alloc_comp_basics_6.f90 b/gcc/testsuite/gfortran.dg/alloc_comp_basics_6.f90 new file mode 100644 index 000000000000..3ed221db24f0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/alloc_comp_basics_6.f90 @@ -0,0 +1,11 @@ +! { dg-do compile } +! +! PR 58026: Bad error recovery for allocatable component of undeclared type +! +! Contributed by Joost VandeVondele + + type sysmtx_t + type(ext_complex_t), allocatable :: S(:) ! { dg-error "has not been previously defined" } + end type + +end