https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94397

--- Comment #5 from kargl at gcc dot gnu.org ---
(In reply to markeggleston from comment #4)
> The compilation error reported is due this change in PR93484:
> 
> --- a/gcc/fortran/match.c
> +++ b/gcc/fortran/match.c
> @@ -2222,9 +2222,9 @@ gfc_match_type_spec (gfc_typespec *ts)
>  
>  found:
>  
> -      m = gfc_match_init_expr (&e);
> +      m = gfc_match_expr (&e);
> 
> Changing it back causes test cases ISO_Fortran_binding_11.f90 and
> pr78033.f90 to fail.
> 
> If "kind=" is found gfc_match_init_expr (&e) should be used and when it is
> not gfc_match_expr (&e).
> 
> I'm checking a suitable test case and will have a patch ready soon.

The patch in comment #3 likely is the correct patch.  When in the
specification part of a scoping unit, the above change is needed to
distinguish REAL(kind(1.)) from REAL(1.1, kind(1.)).  In the former,
we have a type and kind(1.) must be an initialization expression
(see comment 3 or 4 lines down).  In the latter case, we have the
intrinsic subprogram, and simply return MATCH_NO or MATCH_ERROR.

-- 
steve

Reply via email to