diff options
author | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-05-18 23:26:38 +0000 |
---|---|---|
committer | Steven G. Kargl <kargl@gcc.gnu.org> | 2015-05-18 23:26:38 +0000 |
commit | 898344a944c18e89047d4293468a28202aa3190d (patch) | |
tree | 8fdb0f4887a6ae4707e2f001cbaba24f187a8287 /gcc/fortran | |
parent | 377e37c15987acaaddd0e51282adb40d49e91758 (diff) | |
download | gcc-898344a944c18e89047d4293468a28202aa3190d.zip gcc-898344a944c18e89047d4293468a28202aa3190d.tar.gz gcc-898344a944c18e89047d4293468a28202aa3190d.tar.bz2 |
re PR fortran/66057 (ICE for incomplete generic statement (gfc_match_generic))
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
* match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/66057
* gfortran.dg/interface_operator_1.f90: New tests.
From-SVN: r223326
Diffstat (limited to 'gcc/fortran')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/interface.c | 8 | ||||
-rw-r--r-- | gcc/fortran/match.c | 3 |
3 files changed, 15 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 0650883..de7be7a 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,11 @@ 2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/66106 + * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201). + * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE. + +2015-05-18 Steven G. Kargl <kargl@gcc.gnu.org> + PR fortran/66057 * decl.c(gfc_match_generic): Detected a malformed GENERIC statement. diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 0501c1d..d011d84 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -346,8 +346,12 @@ gfc_match_end_interface (void) break; m = MATCH_ERROR; - gfc_error ("Expecting %<END INTERFACE OPERATOR (%s)%> at %C, " - "but got %s", s1, s2); + if (strcmp(s2, "none") == 0) + gfc_error ("Expecting %<END INTERFACE OPERATOR (%s)%> " + "at %C, ", s1); + else + gfc_error ("Expecting %<END INTERFACE OPERATOR (%s)%> at %C, " + "but got %s", s1, s2); } } diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 8234c27..3e12483 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -110,6 +110,9 @@ gfc_op2string (gfc_intrinsic_op op) case INTRINSIC_PARENTHESES: return "parens"; + case INTRINSIC_NONE: + return "none"; + default: break; } |