Looking at the code, I think that the following lines from match_charkind_name (primary.c:830):
if (!ISALNUM (c) && c != '_' && (gfc_option.flag_dollar_ok && c != '$')) break; should be changed to: if (!ISALNUM (c) && c != '_' && !(gfc_option.flag_dollar_ok && c == '$')) break; -- Summary: Small bug in match_charkind_name Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: philippe dot marguinaud at meteo dot fr GCC build triplet: any GCC host triplet: any GCC target triplet: any http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40588