From 624e60f080989fa57756575a0bb47a97748b52b8 Mon Sep 17 00:00:00 2001 From: Mark Eggleston Date: Tue, 23 Jun 2020 11:01:28 +0100 Subject: [PATCH] Fortran : Bogus error with additional blanks in type(*) PR95829 Checking for "* ) " instead of "*)" clears the bogus error. 2020-07-01 Steven G. Kargl gcc/fortran/ PR fortran/95829 * decl.c (gfc_match_decl_type_spec): Compare with "* ) " instead of "*)". 2020-07-01 Mark Eggleston gcc/testsuite/ PR fortran/95829 * gfortran.dg/pr95829.f90: New test. --- gcc/fortran/decl.c | 2 +- gcc/testsuite/gfortran.dg/pr95829.f90 | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gfortran.dg/pr95829.f90 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index f38def4c291..e16b96f6a49 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -4128,7 +4128,7 @@ gfc_match_decl_type_spec (gfc_typespec *ts, int implicit_flag) gfc_gobble_whitespace (); if (gfc_peek_ascii_char () == '*') { - if ((m = gfc_match ("*)")) != MATCH_YES) + if ((m = gfc_match ("* ) ")) != MATCH_YES) return m; if (gfc_comp_struct (gfc_current_state ())) { diff --git a/gcc/testsuite/gfortran.dg/pr95829.f90 b/gcc/testsuite/gfortran.dg/pr95829.f90 new file mode 100644 index 00000000000..081d647c7c0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr95829.f90 @@ -0,0 +1,14 @@ +! { dg-do compile } +! +! Declaration of b used to be a bogus failure. + +subroutine s (a, b, c, d, e, f, g) + type(*) :: a + type(* ) :: b + type( *) :: c + type( * ) :: d + type(* ) :: e + type( *) :: f + type( * ) :: g +end + -- 2.30.2