Hi Mikael, Am 31.07.22 um 10:35 schrieb Mikael Morin: > Le 30/07/2022 à 21:40, Harald Anlauf a écrit : >> Hi Mikael, >> >> Am 30.07.22 um 10:28 schrieb Mikael Morin: >>> Meh! We killed one check for gfc_current_form but the other one is still >>> there. >>> OK, match_kind_param calls two functions that also gobble space, so >>> there is work remaining here. >>> So please make match_small_literal_constant and gfc_match_name >>> space-gobbling wrappers around space-non-gobbling inner functions and >>> call those inner functions instead in match_kind_param. >> >> well, here's the shortest solution I could come up with. >> I added a new argument to 3 functions used in parsing that >> controls the gobbling of whitespace.  We use this to handle >> whitespace for numerical literals, while the parsing of string >> literals remains as in the previous version of the patch. >> >> This version obviously ignores Thomas' request, as that would >> require to treat gfc_match_char specially... >> >> Regtested again.  OK now? > >>     PR fortran/92805 >>     * match.cc (gfc_match_small_literal_int): Make gobbling of leading >>     whitespace optional. >>     (gfc_match_name): Likewise. >>     (gfc_match_char): Likewise. >>     * match.h (gfc_match_small_literal_int): Adjust prototype. >>     (gfc_match_name): Likewise. >>     (gfc_match_char): Likewise. >>     * primary.cc (match_kind_param): Match small literal int or name >>     without gobbling whitespace. >>     (get_kind): Do not skip over blanks in free-form mode. > I think the "in free-form mode" applied to the preceding patches but can > be dropped now. >>     (match_string_constant): Likewise. > >> diff --git a/gcc/fortran/match.cc b/gcc/fortran/match.cc >> index 1aa3053e70e..c0dc0e89361 100644 >> --- a/gcc/fortran/match.cc >> +++ b/gcc/fortran/match.cc >> @@ -457,7 +457,7 @@ gfc_match_eos (void) >>     will be set to the number of digits.  */ > Please add a note about GOBBLE_WS here, like you did for gfc_match_char. >> >>  match >> -gfc_match_small_literal_int (int *value, int *cnt) >> +gfc_match_small_literal_int (int *value, int *cnt, bool gobble_ws) >>  { >>    locus old_loc; >>    char c; > (...) >> @@ -611,14 +612,15 @@ gfc_match_label (void) >>     than GFC_MAX_SYMBOL_LEN.  */ > Same here. >> >>  match >> -gfc_match_name (char *buffer) >> +gfc_match_name (char *buffer, bool gobble_ws) >>  { >>    locus old_loc; >>    int i; >>    char c; >> > (...) >> @@ -1052,16 +1054,19 @@ cleanup: >>  } >> >> >> -/* Tries to match the next non-whitespace character on the input. >> -   This subroutine does not return MATCH_ERROR.  */ >> +/* Tries to match the next non-whitespace character on the input.  This >> +   subroutine does not return MATCH_ERROR.  When gobble_ws is false, >> do not >> +   skip over leading blanks. >> +*/ > There should be no line feed before end of comment. I've adjusted the patch (see attached) and pushed it as commit r13-1905-gd325e7048c85e13f12ea79aebf9623eddc7ffcaf Thanks, Harald > OK with those changes. > thanks for your patience. > > Mikael > >