[Bug fortran/38839] New: BIND(C): Allow non-digit/underscore/alphabetic binding names
burnus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Wed Jan 14 15:37:00 GMT 2009
Motivated by
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/d977a668b0316119
Currently, BIND(C, NAME=binding-name) checks for ISALPHA and "_". However, the
C standard allows more (from ISO/IEC 9899:1999(E) = C99, Section 6.4.2
Indentifiers):
identifier:
identifier-nondigit
identifier identifier-nondigit
identifier digit
identifier-nondigit:
nondigit
universal-character-name <<<<<<<<
other implementation-defined characters <<<<<<
nondigit: One of
_ a b c (...) z A B C (...) Z
digit:
0 1 (...) 9
Note the items marked by "<<<<<". I'm not sure whether the current restriction
makes any problem in practice, but I could imaging that there is a legitimated
use for it, though I could not find a good example.
Currently, it is abused to call STDCALL programs which get a "@<n>" appended to
the name where "<n>" is related to how much needs to be popped from the stack.
The proper solution is to support STDCALL (PR 34112); thus I don't think this
is a proper use.
Does it make sense to change the error into a warning? Or to allow certain
other characters?
* * *
Seemingly $ is allowed by "gcc -c -std=c99 -Wall -pedantic":
void t$FAst(void)
{
}
--
Summary: BIND(C): Allow non-digit/underscore/alphabetic binding
names
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839
More information about the Gcc-bugs
mailing list