aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexandre Oliva <oliva@lsd.ic.unicamp.br>2000-02-23 19:21:07 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2000-02-23 19:21:07 +0000
commit525bc95d4a71eef870aa511696aef58f752c5cac (patch)
tree8563639f4dd1a3dcf134a19e283b5f8ea189a1dd /gcc
parent1cb8d58accf67dcaa8f9bdd07dc0467964d3fd4e (diff)
downloadgcc-525bc95d4a71eef870aa511696aef58f752c5cac.zip
gcc-525bc95d4a71eef870aa511696aef58f752c5cac.tar.gz
gcc-525bc95d4a71eef870aa511696aef58f752c5cac.tar.bz2
cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
* cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. * cpplib.c (cpp_get_token): Produce them. * cppexp.c (cpp_lex): Handle them. From-SVN: r32121
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cppexp.c5
-rw-r--r--gcc/cpplib.c5
-rw-r--r--gcc/cpplib.h2
4 files changed, 15 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 24ddde4..2aaccfb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2000-02-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
+
+ * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
+ * cpplib.c (cpp_get_token): Produce them.
+ * cppexp.c (cpp_lex): Handle them.
+
2000-02-23 Nick Clifton <nickc@cygnus.com>
* config/arm/arm.c (arm_comp_type_attributes): Simply and
diff --git a/gcc/cppexp.c b/gcc/cppexp.c
index a7db2ce..f659559 100644
--- a/gcc/cppexp.c
+++ b/gcc/cppexp.c
@@ -1,5 +1,5 @@
/* Parse C expressions for CCCP.
- Copyright (C) 1987, 92, 94, 95, 97, 98, 1999 Free Software Foundation.
+ Copyright (C) 1987, 92, 94, 95, 97, 98, 1999, 2000 Free Software Foundation.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
@@ -397,10 +397,13 @@ cpp_lex (pfile, skip_evaluation)
case CPP_NUMBER:
return parse_number (pfile, tok_start, tok_end);
case CPP_STRING:
+ case CPP_WSTRING:
cpp_error (pfile, "string constants are not allowed in #if expressions");
op.op = ERROR;
return op;
+
case CPP_CHAR:
+ case CPP_WCHAR:
return parse_charconst (pfile, tok_start, tok_end);
case CPP_NAME:
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 9ffa4a1..43a3bfa 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -2447,7 +2447,6 @@ cpp_get_token (pfile)
case '\"':
case '\'':
- string:
parse_string (pfile, c);
pfile->only_seen_white = 0;
return c == '\'' ? CPP_CHAR : CPP_STRING;
@@ -2600,7 +2599,9 @@ cpp_get_token (pfile)
{
CPP_PUTC (pfile, c);
c = GETC ();
- goto string;
+ parse_string (pfile, c);
+ pfile->only_seen_white = 0;
+ return c == '\'' ? CPP_WCHAR : CPP_WSTRING;
}
goto letter;
diff --git a/gcc/cpplib.h b/gcc/cpplib.h
index 82eb55c..592093c 100644
--- a/gcc/cpplib.h
+++ b/gcc/cpplib.h
@@ -43,7 +43,9 @@ enum cpp_token {
CPP_NAME,
CPP_NUMBER,
CPP_CHAR,
+ CPP_WCHAR,
CPP_STRING,
+ CPP_WSTRING,
CPP_DIRECTIVE,
CPP_LPAREN, /* "(" */
CPP_RPAREN, /* ")" */