diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 24ddde431178..2aaccfb4e60a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2000-02-23 Alexandre Oliva + + * 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 * config/arm/arm.c (arm_comp_type_attributes): Simply and diff --git a/gcc/cppexp.c b/gcc/cppexp.c index a7db2ce899a6..f6595596c013 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 9ffa4a1cedf3..43a3bfa5344b 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 82eb55c44b9d..592093c65805 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, /* ")" */