mirror of git://gcc.gnu.org/git/gcc.git
c.opt (fextended-identifiers): New.
gcc: * c.opt (fextended-identifiers): New. * c-opts.c (c_common_handle_option): Handle -fextended-identifiers. * doc/cpp.texi: Update documentation of extended identifiers. * doc/cppopts.texi (-fextended-identifiers): Document. gcc/testsuite: * g++.dg/cpp/ucnid-1.C, g++.dg/cpp/normalize-1.C, g++.dg/other/ucnid-1.C, gcc.dg/cpp/normalize-1.c, gcc.dg/cpp/normalize-2.c, gcc.dg/cpp/normalize-3.c, gcc.dg/cpp/normalize-4.c, gcc.dg/cpp/ucnid-1.c, gcc.dg/cpp/ucnid-2.c, gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c, gcc.dg/cpp/ucnid-5.c, gcc.dg/cpp/ucnid-7.c,gcc.dg/ucnid-1.c, gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c, gcc.dg/ucnid-4.c, gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Add -fextended-identifiers. * gcc.dg/cpp/ucnid-8.c: New test. libcpp: * include/cpplib.h (struct cpp_options): Add extended_identifiers. * init.c (struct lang_flags, lang_defaults): Add extended_identifiers. (cpp_set_lang): Use it. * lex.c (forms_identifier_p): Check extended_identifiers. From-SVN: r104462
This commit is contained in:
parent
6fff260313
commit
af15a2fed7
|
@ -1,3 +1,11 @@
|
||||||
|
2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* c.opt (fextended-identifiers): New.
|
||||||
|
* c-opts.c (c_common_handle_option): Handle
|
||||||
|
-fextended-identifiers.
|
||||||
|
* doc/cpp.texi: Update documentation of extended identifiers.
|
||||||
|
* doc/cppopts.texi (-fextended-identifiers): Document.
|
||||||
|
|
||||||
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR tree-optimization/23929
|
PR tree-optimization/23929
|
||||||
|
|
|
@ -647,6 +647,10 @@ c_common_handle_option (size_t scode, const char *arg, int value)
|
||||||
flag_enforce_eh_specs = value;
|
flag_enforce_eh_specs = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case OPT_fextended_identifiers:
|
||||||
|
cpp_opts->extended_identifiers = value;
|
||||||
|
break;
|
||||||
|
|
||||||
case OPT_ffixed_form:
|
case OPT_ffixed_form:
|
||||||
case OPT_ffixed_line_length_:
|
case OPT_ffixed_line_length_:
|
||||||
/* Fortran front end options ignored when preprocessing only. */
|
/* Fortran front end options ignored when preprocessing only. */
|
||||||
|
|
|
@ -495,6 +495,10 @@ fexec-charset=
|
||||||
C ObjC C++ ObjC++ Joined RejectNegative
|
C ObjC C++ ObjC++ Joined RejectNegative
|
||||||
-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
|
-fexec-charset=<cset> Convert all strings and character constants to character set <cset>
|
||||||
|
|
||||||
|
fextended-identifiers
|
||||||
|
C ObjC C++ ObjC++
|
||||||
|
Permit universal character names (\\u and \\U) in identifiers
|
||||||
|
|
||||||
finput-charset=
|
finput-charset=
|
||||||
C ObjC C++ ObjC++ Joined RejectNegative
|
C ObjC C++ ObjC++ Joined RejectNegative
|
||||||
-finput-charset=<cset> Specify the default character set for source files
|
-finput-charset=<cset> Specify the default character set for source files
|
||||||
|
|
|
@ -281,11 +281,11 @@ the character in the source character set that they represent, then
|
||||||
converted to the execution character set, just like unescaped
|
converted to the execution character set, just like unescaped
|
||||||
characters.
|
characters.
|
||||||
|
|
||||||
|
Unless the experimental @option{-fextended-identifiers} option is used,
|
||||||
GCC does not permit the use of characters outside the ASCII range, nor
|
GCC does not permit the use of characters outside the ASCII range, nor
|
||||||
@samp{\u} and @samp{\U} escapes, in identifiers. We hope this will
|
@samp{\u} and @samp{\U} escapes, in identifiers. Even with that
|
||||||
change eventually, but there are problems with the standard semantics
|
option, characters outside the ASCII range can only be specified with
|
||||||
of such ``extended identifiers'' which must be resolved through the
|
the @samp{\u} and @samp{\U} escapes, not used directly in identifiers.
|
||||||
ISO C and C++ committees first.
|
|
||||||
|
|
||||||
@node Initial processing
|
@node Initial processing
|
||||||
@section Initial processing
|
@section Initial processing
|
||||||
|
@ -510,8 +510,10 @@ In the 1999 C standard, identifiers may contain letters which are not
|
||||||
part of the ``basic source character set'', at the implementation's
|
part of the ``basic source character set'', at the implementation's
|
||||||
discretion (such as accented Latin letters, Greek letters, or Chinese
|
discretion (such as accented Latin letters, Greek letters, or Chinese
|
||||||
ideograms). This may be done with an extended character set, or the
|
ideograms). This may be done with an extended character set, or the
|
||||||
@samp{\u} and @samp{\U} escape sequences. GCC does not presently
|
@samp{\u} and @samp{\U} escape sequences. The implementation of this
|
||||||
implement either feature in the preprocessor or the compiler.
|
feature in GCC is experimental; such characters are only accepted in
|
||||||
|
the @samp{\u} and @samp{\U} forms and only if
|
||||||
|
@option{-fextended-identifiers} is used.
|
||||||
|
|
||||||
As an extension, GCC treats @samp{$} as a letter. This is for
|
As an extension, GCC treats @samp{$} as a letter. This is for
|
||||||
compatibility with some systems, such as VMS, where @samp{$} is commonly
|
compatibility with some systems, such as VMS, where @samp{$} is commonly
|
||||||
|
@ -3791,7 +3793,9 @@ character set may be controlled by the user, with the
|
||||||
The C and C++ standards allow identifiers to be composed of @samp{_}
|
The C and C++ standards allow identifiers to be composed of @samp{_}
|
||||||
and the alphanumeric characters. C++ and C99 also allow universal
|
and the alphanumeric characters. C++ and C99 also allow universal
|
||||||
character names, and C99 further permits implementation-defined
|
character names, and C99 further permits implementation-defined
|
||||||
characters.
|
characters. GCC currently only permits universal character names if
|
||||||
|
@option{-fextended-identifiers} is used, because the implementation of
|
||||||
|
universal character names in identifiers is experimental.
|
||||||
|
|
||||||
GCC allows the @samp{$} character in identifiers as an extension for
|
GCC allows the @samp{$} character in identifiers as an extension for
|
||||||
most targets. This is true regardless of the @option{std=} switch,
|
most targets. This is true regardless of the @option{std=} switch,
|
||||||
|
|
|
@ -511,6 +511,12 @@ Accept @samp{$} in identifiers.
|
||||||
@xref{Identifier characters}.
|
@xref{Identifier characters}.
|
||||||
@end ifset
|
@end ifset
|
||||||
|
|
||||||
|
@item -fextended-identifiers
|
||||||
|
@opindex fextended-identifiers
|
||||||
|
Accept universal character names in identifiers. This option is
|
||||||
|
experimental; in a future version of GCC, it will be enabled by
|
||||||
|
default for C99 and C++.
|
||||||
|
|
||||||
@item -fpreprocessed
|
@item -fpreprocessed
|
||||||
@opindex fpreprocessed
|
@opindex fpreprocessed
|
||||||
Indicate to the preprocessor that the input file has already been
|
Indicate to the preprocessor that the input file has already been
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* g++.dg/cpp/ucnid-1.C, g++.dg/cpp/normalize-1.C,
|
||||||
|
g++.dg/other/ucnid-1.C, gcc.dg/cpp/normalize-1.c,
|
||||||
|
gcc.dg/cpp/normalize-2.c, gcc.dg/cpp/normalize-3.c,
|
||||||
|
gcc.dg/cpp/normalize-4.c, gcc.dg/cpp/ucnid-1.c,
|
||||||
|
gcc.dg/cpp/ucnid-2.c, gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c,
|
||||||
|
gcc.dg/cpp/ucnid-5.c, gcc.dg/cpp/ucnid-7.c,gcc.dg/ucnid-1.c,
|
||||||
|
gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c, gcc.dg/ucnid-4.c,
|
||||||
|
gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Add -fextended-identifiers.
|
||||||
|
* gcc.dg/cpp/ucnid-8.c: New test.
|
||||||
|
|
||||||
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
2005-09-20 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR tree-optimization/23929
|
PR tree-optimization/23929
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-Wnormalized=id" } */
|
/* { dg-options "-fextended-identifiers -Wnormalized=id" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00B7
|
\u00B7
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-pedantic" } */
|
/* { dg-options "-pedantic -fextended-identifiers" } */
|
||||||
|
|
||||||
\u00AA /* { dg-error "not valid in an identifier" } */
|
\u00AA /* { dg-error "not valid in an identifier" } */
|
||||||
\u00AB /* { dg-error "not valid in an identifier" } */
|
\u00AB /* { dg-error "not valid in an identifier" } */
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
|
/* { dg-options "-fextended-identifiers" } */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00B7
|
\u00B7
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99 -Wnormalized=nfkc" } */
|
/* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=nfkc" } */
|
||||||
|
|
||||||
\u00AA /* { dg-warning "not in NFKC" } */
|
\u00AA /* { dg-warning "not in NFKC" } */
|
||||||
\u00B7
|
\u00B7
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99 -Wnormalized=id" } */
|
/* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=id" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00B7
|
\u00B7
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99 -Wnormalized=none" } */
|
/* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=none" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00B7
|
\u00B7
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
#define \u00C0 1
|
#define \u00C0 1
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
|
|
||||||
#define paste(x, y) x ## y
|
#define paste(x, y) x ## y
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00AB /* { dg-error "not valid in an identifier" } */
|
\u00AB /* { dg-error "not valid in an identifier" } */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do preprocess } */
|
/* { dg-do preprocess } */
|
||||||
/* { dg-options "-std=c99 -pedantic" } */
|
/* { dg-options "-std=c99 -pedantic -fextended-identifiers" } */
|
||||||
|
|
||||||
\u00AA
|
\u00AA
|
||||||
\u00AB /* { dg-error "not valid in an identifier" } */
|
\u00AB /* { dg-error "not valid in an identifier" } */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
#define a b(
|
#define a b(
|
||||||
#define b(x) q
|
#define b(x) q
|
||||||
int a\U0000000z );
|
int a\U0000000z );
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-std=c99" } */
|
||||||
|
/* Test that -std=c99 does not enable extended identifiers while the
|
||||||
|
feature is experimental; remove this test after audit of all
|
||||||
|
identifier uses in the compiler. */
|
||||||
|
#define a b(
|
||||||
|
#define b(x) q
|
||||||
|
int a\u00aa);
|
|
@ -1,5 +1,5 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
static int \u00C0 = 1;
|
static int \u00C0 = 1;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
int \u00C0 = 1;
|
int \u00C0 = 1;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* { dg-do run */
|
/* { dg-do run */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
/* { dg-options "-std=c99" } */
|
/* { dg-options "-std=c99 -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
int \u00C0(void) { return 1; }
|
int \u00C0(void) { return 1; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
/* { dg-options "-std=c99 -fdollars-in-identifiers" } */
|
/* { dg-options "-std=c99 -fdollars-in-identifiers -fextended-identifiers" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
int a$b(void) { return 1; }
|
int a$b(void) { return 1; }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* { dg-do run */
|
/* { dg-do run */
|
||||||
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
/* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
|
||||||
/* { dg-options "-std=c99 -save-temps" } */
|
/* { dg-options "-std=c99 -fextended-identifiers -save-temps" } */
|
||||||
void abort (void);
|
void abort (void);
|
||||||
|
|
||||||
int \u00C0(void) { return 1; }
|
int \u00C0(void) { return 1; }
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2005-09-20 Joseph S. Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* include/cpplib.h (struct cpp_options): Add extended_identifiers.
|
||||||
|
* init.c (struct lang_flags, lang_defaults): Add
|
||||||
|
extended_identifiers.
|
||||||
|
(cpp_set_lang): Use it.
|
||||||
|
* lex.c (forms_identifier_p): Check extended_identifiers.
|
||||||
|
|
||||||
2005-08-30 Jakub Jelinek <jakub@redhat.com>
|
2005-08-30 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR preprocessor/20348
|
PR preprocessor/20348
|
||||||
|
|
|
@ -345,6 +345,9 @@ struct cpp_options
|
||||||
/* Zero means dollar signs are punctuation. */
|
/* Zero means dollar signs are punctuation. */
|
||||||
unsigned char dollars_in_ident;
|
unsigned char dollars_in_ident;
|
||||||
|
|
||||||
|
/* Nonzero means UCNs are accepted in identifiers. */
|
||||||
|
unsigned char extended_identifiers;
|
||||||
|
|
||||||
/* True if we should warn about dollars in identifiers or numbers
|
/* True if we should warn about dollars in identifiers or numbers
|
||||||
for this translation unit. */
|
for this translation unit. */
|
||||||
unsigned char warn_dollars;
|
unsigned char warn_dollars;
|
||||||
|
|
|
@ -72,21 +72,26 @@ struct lang_flags
|
||||||
char c99;
|
char c99;
|
||||||
char cplusplus;
|
char cplusplus;
|
||||||
char extended_numbers;
|
char extended_numbers;
|
||||||
|
char extended_identifiers;
|
||||||
char std;
|
char std;
|
||||||
char cplusplus_comments;
|
char cplusplus_comments;
|
||||||
char digraphs;
|
char digraphs;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct lang_flags lang_defaults[] =
|
static const struct lang_flags lang_defaults[] =
|
||||||
{ /* c99 c++ xnum std // digr */
|
{ /* c99 c++ xnum xid std // digr */
|
||||||
/* GNUC89 */ { 0, 0, 1, 0, 1, 1 },
|
/* GNUC89 */ { 0, 0, 1, 0, 0, 1, 1 },
|
||||||
/* GNUC99 */ { 1, 0, 1, 0, 1, 1 },
|
/* GNUC99 */ { 1, 0, 1, 0, 0, 1, 1 },
|
||||||
/* STDC89 */ { 0, 0, 0, 1, 0, 0 },
|
/* STDC89 */ { 0, 0, 0, 0, 1, 0, 0 },
|
||||||
/* STDC94 */ { 0, 0, 0, 1, 0, 1 },
|
/* STDC94 */ { 0, 0, 0, 0, 1, 0, 1 },
|
||||||
/* STDC99 */ { 1, 0, 1, 1, 1, 1 },
|
/* STDC99 */ { 1, 0, 1, 0, 1, 1, 1 },
|
||||||
/* GNUCXX */ { 0, 1, 1, 0, 1, 1 },
|
/* GNUCXX */ { 0, 1, 1, 0, 0, 1, 1 },
|
||||||
/* CXX98 */ { 0, 1, 1, 1, 1, 1 },
|
/* CXX98 */ { 0, 1, 1, 0, 1, 1, 1 },
|
||||||
/* ASM */ { 0, 0, 1, 0, 1, 0 }
|
/* ASM */ { 0, 0, 1, 0, 0, 1, 0 }
|
||||||
|
/* xid should be 1 for GNUC99, STDC99, GNUCXX and CXX98 when no
|
||||||
|
longer experimental (when all uses of identifiers in the compiler
|
||||||
|
have been audited for correct handling of extended
|
||||||
|
identifiers). */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Sets internal flags correctly for a given language. */
|
/* Sets internal flags correctly for a given language. */
|
||||||
|
@ -97,13 +102,14 @@ cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
|
||||||
|
|
||||||
CPP_OPTION (pfile, lang) = lang;
|
CPP_OPTION (pfile, lang) = lang;
|
||||||
|
|
||||||
CPP_OPTION (pfile, c99) = l->c99;
|
CPP_OPTION (pfile, c99) = l->c99;
|
||||||
CPP_OPTION (pfile, cplusplus) = l->cplusplus;
|
CPP_OPTION (pfile, cplusplus) = l->cplusplus;
|
||||||
CPP_OPTION (pfile, extended_numbers) = l->extended_numbers;
|
CPP_OPTION (pfile, extended_numbers) = l->extended_numbers;
|
||||||
CPP_OPTION (pfile, std) = l->std;
|
CPP_OPTION (pfile, extended_identifiers) = l->extended_identifiers;
|
||||||
CPP_OPTION (pfile, trigraphs) = l->std;
|
CPP_OPTION (pfile, std) = l->std;
|
||||||
CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments;
|
CPP_OPTION (pfile, trigraphs) = l->std;
|
||||||
CPP_OPTION (pfile, digraphs) = l->digraphs;
|
CPP_OPTION (pfile, cplusplus_comments) = l->cplusplus_comments;
|
||||||
|
CPP_OPTION (pfile, digraphs) = l->digraphs;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize library global state. */
|
/* Initialize library global state. */
|
||||||
|
|
|
@ -476,7 +476,7 @@ forms_identifier_p (cpp_reader *pfile, int first,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Is this a syntactically valid UCN? */
|
/* Is this a syntactically valid UCN? */
|
||||||
if ((CPP_OPTION (pfile, cplusplus) || CPP_OPTION (pfile, c99))
|
if (CPP_OPTION (pfile, extended_identifiers)
|
||||||
&& *buffer->cur == '\\'
|
&& *buffer->cur == '\\'
|
||||||
&& (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
|
&& (buffer->cur[1] == 'u' || buffer->cur[1] == 'U'))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue