------- Comment #6 from jvdelisle at gcc dot gnu dot org 2010-03-04 02:34 ------- Without looking at the code yet, the matcher must see a space or double colon after the word FINAL before matching it. If it sees anything else, its a MATCH_NO not a MATCH_ERROR. If this is being done then the syntax error in the array qualifiers may/should kick in.
Syntax for FINAL is : FINAL [ :: ] final-subroutine-name-list So I think your patch is OK for MATCH_NO but a MATCH_YES must see :: as well. Free or Fixed form is irrelevant. Fixed form may allow things like F I N AL but it still must have :: (or : whitespace :) to match. (Also, the invalid looking array qualifier in that code needs to be caught as well.) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43244