------- 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: 0000000000000000     6 FUNC    GLOBAL DEFAULT    1 ^^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

Reply via email to