@Joseph: I CC'ed you in case you have comments regarding c-parser.c's c_parser_check_balanced_raw_token_sequence (comment update) and c_parser_check_tight_balanced_raw_token_sequence (new); the latter is essentially cp_parser_skip_balanced_tokens with slight adaptions. On 27.05.21 10:22, Jakub Jelinek via Gcc-patches wrote: > One important thing I've missed. > Unlike depend clause where dependence-type : is required, in affinity clause > the aff-modifier is optional. Now handled for C, C++ and Fortran. > What happens with this block ns: >> + char name[GFC_MAX_SYMBOL_LEN + 1]; >> + while (true) >> + { >> + locus old_loc = gfc_current_locus; >> + if (gfc_match_type_spec (&ts) == MATCH_YES >> + && gfc_match (" :: ") == MATCH_YES) >> + { >> + if (ts.type != BT_INTEGER) >> + { >> + gfc_error ("Expected INTEGER type at %L", &old_loc); > In the error handling? Well, in the old code nothing – until the parent namespace (gfc_current_ns) is beeing freed. Otherwise, it is walked at several places but not ns->symtree but only ns->code or ns->entry or ... As it now can be used in a non-error case, I decided to free it inside openmp.c instead of leaving it there for later cleanup. Tobias ----------------- Mentor Graphics (Deutschland) GmbH, Arnulfstrasse 201, 80634 München Registergericht München HRB 106955, Geschäftsführer: Thomas Heurung, Frank Thürauf