[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839 --- Comment #6 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org --- Author: fxcoudert Date: Sun Jun 29 14:14:16 2014 New Revision: 212123 URL: https://gcc.gnu.org/viewcvs?rev=212123root=gccview=rev Log: PR fortran/36275 PR fortran/38839 * decl.c (check_bind_name_identifier): New function. (gfc_match_bind_c): Match any constant expression as binding label. * match.c (gfc_match_name_C): Remove. * gfortran.dg/binding_label_tests_2.f03: Adjust error messages. * gfortran.dg/binding_label_tests_27.f90: New file. Added: trunk/gcc/testsuite/gfortran.dg/binding_label_tests_27.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/decl.c trunk/gcc/fortran/match.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/binding_label_tests_2.f03
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839 Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |4.10.0 --- Comment #7 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org --- Fixed on trunk.
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839 Francois-Xavier Coudert fxcoudert at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED CC||fxcoudert at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |fxcoudert at gcc dot gnu.org --- Comment #5 from Francois-Xavier Coudert fxcoudert at gcc dot gnu.org --- Should be fixed at the same time as this patch here: https://gcc.gnu.org/ml/fortran/2014-06/msg00090.html , which reworks the parsing of binding labels. I intend to find what the consensus is on this issue, incorporate it into the patch, and close this.
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
--- Comment #3 from dfranke at gcc dot gnu dot org 2009-12-10 19:11 --- See PR36275 for more possibilities on binding labels. -- dfranke at gcc dot gnu dot org changed: What|Removed |Added CC||dfranke at gcc dot gnu dot ||org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
--- Comment #4 from burnus at gcc dot gnu dot org 2009-12-10 19:52 --- For $ one should check whether it is allowed for the given target, cf. DOLLARS_IN_IDENTIFIERS (- gcc/c-opts.c and dollars_in_ident in libcpp/). For UCN (universal-character name), the ASCII characters $, @ and ` are allowed. Cf. C99 6.4.3 and libcpp _cpp_valid_ucn. One could also think of supporting UCN with character kind=4 (cf. PR36275 and PR 9449) - at least when -fextended-identifiers is specified - as vendor extension. As gfortran uses libcpp and and has full support of wide chars, it should not be difficult (but shall produce an error with -std=f2008). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
--- Comment #1 from burnus at gcc dot gnu dot org 2009-01-14 16:00 --- And for the universal-character-name, the following compiles with Intel's icc void \u01ac(void) { } and should be valid C99. ICC generates the identifier _u01ac. Using gcc -fextended-identifiers it shows up in the .o file as (readelf -a): 8: 6 FUNCGLOBAL DEFAULT1 ^^F^354 In the Fortran 2003 standard one finds: R509 language-binding-spec is BIND (C [, NAME = scalar-char-initialization-expr ]) C540 (R509) The scalar-char-initialization-expr shall be of default character kind. That makes it a bit difficult to use UCNs ... From Fortran 2008 (below R508): NOTE 5.5 The C International Standard provides a facility for creating C identifiers whose characters are not restricted to the C basic character set. Such a C identifier is referred to as a universal character name (6.4.3 of the C International Standard). The name of such a C identifier might include characters that are not part of the representation method used by the processor for default character. If so, the C entity cannot be referenced from Fortran. Thus currently we only need to worry about '$' and maybe some others. Optionally supporting non-default character strings and thus UCN might be done later on (cf. also PR 38838 comment 3). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839
[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names
--- Comment #2 from burnus at gcc dot gnu dot org 2009-01-14 16:09 --- For UCN see also PR 9449. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38839