[Bug fortran/38839] BIND(C): Allow non-digit/underscore/alphabetic binding names

2014-06-29 Thread fxcoudert at gcc dot gnu.org
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

2014-06-29 Thread fxcoudert at gcc dot gnu.org
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

2014-06-08 Thread fxcoudert at gcc dot gnu.org
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

2009-12-10 Thread dfranke at gcc dot gnu dot org


--- 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

2009-12-10 Thread burnus at gcc dot gnu dot org


--- 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

2009-01-14 Thread burnus at gcc dot gnu dot org


--- 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

2009-01-14 Thread burnus at gcc dot gnu dot org


--- 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