mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-01-17 21:34:53 +08:00
(dollars_in_ident): Remove; replaced by is_idchar['$'].
(main): Initialize is_idchar and is_idstart directly when given -$. Ignore DOLLARS_IN_IDENTIFIERS. (rescan): Diagnose $ in identifier if pedantic. (initialize_char_syntax): Assume $ is allowed in identifier; `main' will change this if -$ is given. From-SVN: r12934
This commit is contained in:
parent
b23635606b
commit
45870676ab
31
gcc/cccp.c
31
gcc/cccp.c
@ -1032,18 +1032,6 @@ static int errors = 0; /* Error counter for exit code */
|
||||
/* Name of output file, for error messages. */
|
||||
static char *out_fname;
|
||||
|
||||
/* Zero means dollar signs are punctuation.
|
||||
-$ stores 0; -traditional may store 1. Default is 1 for VMS, 0 otherwise.
|
||||
This must be 0 for correct processing of this ANSI C program:
|
||||
#define foo(a) #a
|
||||
#define lose(b) foo (b)
|
||||
#define test$
|
||||
lose (test) */
|
||||
static int dollars_in_ident;
|
||||
#ifndef DOLLARS_IN_IDENTIFIERS
|
||||
#define DOLLARS_IN_IDENTIFIERS 1
|
||||
#endif
|
||||
|
||||
|
||||
/* Stack of conditionals currently in progress
|
||||
(including both successful and failing conditionals). */
|
||||
@ -1354,10 +1342,8 @@ main (argc, argv)
|
||||
in_fname = NULL;
|
||||
out_fname = NULL;
|
||||
|
||||
/* Initialize is_idchar to allow $. */
|
||||
dollars_in_ident = 1;
|
||||
/* Initialize is_idchar. */
|
||||
initialize_char_syntax ();
|
||||
dollars_in_ident = DOLLARS_IN_IDENTIFIERS > 0;
|
||||
|
||||
no_line_directives = 0;
|
||||
no_trigraphs = 1;
|
||||
@ -1512,8 +1498,6 @@ main (argc, argv)
|
||||
if (!strcmp (argv[i], "-traditional")) {
|
||||
traditional = 1;
|
||||
cplusplus_comments = 0;
|
||||
if (dollars_in_ident > 0)
|
||||
dollars_in_ident = 1;
|
||||
} else if (!strcmp (argv[i], "-trigraphs")) {
|
||||
no_trigraphs = 0;
|
||||
}
|
||||
@ -1715,7 +1699,7 @@ main (argc, argv)
|
||||
break;
|
||||
|
||||
case '$': /* Don't include $ in identifiers. */
|
||||
dollars_in_ident = 0;
|
||||
is_idchar['$'] = is_idstart['$'] = 0;
|
||||
break;
|
||||
|
||||
case 'I': /* Add directory to path for includes. */
|
||||
@ -1778,9 +1762,6 @@ main (argc, argv)
|
||||
if (cp && ! no_standard_includes)
|
||||
path_include (cp);
|
||||
|
||||
/* Now that dollars_in_ident is known, initialize is_idchar. */
|
||||
initialize_char_syntax ();
|
||||
|
||||
/* Initialize output buffer */
|
||||
|
||||
outbuf.buf = (U_CHAR *) xmalloc (OUTBUF_SIZE);
|
||||
@ -3053,8 +3034,10 @@ do { ip = &instack[indepth]; \
|
||||
break;
|
||||
|
||||
case '$':
|
||||
if (!dollars_in_ident)
|
||||
if (! is_idchar['$'])
|
||||
goto randomchar;
|
||||
if (pedantic)
|
||||
pedwarn ("`$' in identifier");
|
||||
goto letter;
|
||||
|
||||
case '0': case '1': case '2': case '3': case '4':
|
||||
@ -9445,8 +9428,8 @@ initialize_char_syntax ()
|
||||
is_idchar[i] = 1;
|
||||
is_idchar['_'] = 1;
|
||||
is_idstart['_'] = 1;
|
||||
is_idchar['$'] = dollars_in_ident;
|
||||
is_idstart['$'] = dollars_in_ident;
|
||||
is_idchar['$'] = 1;
|
||||
is_idstart['$'] = 1;
|
||||
|
||||
/* horizontal space table */
|
||||
is_hor_space[' '] = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user