Commit 4a4b0aa3 by Richard Henderson Committed by Richard Henderson

decl.c (ptr_type_node, [...]): New.

        * decl.c (ptr_type_node, va_list_type_node): New.
        * gxx.gperf (__builtin_va_arg): New.
        * parse.y (VA_ARG): New token.
        (unary_expr): Recognize it.

From-SVN: r28242
parent 88c7af34
1999-07-24 Richard Henderson <rth@cygnus.com>
* decl.c (ptr_type_node, va_list_type_node): New.
* gxx.gperf (__builtin_va_arg): New.
* parse.y (VA_ARG): New token.
(unary_expr): Recognize it.
Sun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com) Sun Jul 25 15:24:21 1999 Jeffrey A Law (law@cygnus.com)
* g++FAQ.texi: Deleted per Joe Buck's request. * g++FAQ.texi: Deleted per Joe Buck's request.
......
...@@ -275,6 +275,12 @@ tree char_type_node; ...@@ -275,6 +275,12 @@ tree char_type_node;
tree integer_type_node; tree integer_type_node;
tree unsigned_type_node; tree unsigned_type_node;
/* These can't be part of the above array, since they are declared
individially in tree.h and used by the target routines. */
tree ptr_type_node;
tree va_list_type_node;
/* Indicates that there is a type value in some namespace, although /* Indicates that there is a type value in some namespace, although
that is not necessarily in scope at the moment. */ that is not necessarily in scope at the moment. */
......
...@@ -9,6 +9,7 @@ __asm, ASM_KEYWORD, RID_UNUSED ...@@ -9,6 +9,7 @@ __asm, ASM_KEYWORD, RID_UNUSED
__asm__, ASM_KEYWORD, RID_UNUSED __asm__, ASM_KEYWORD, RID_UNUSED
__attribute, ATTRIBUTE, RID_UNUSED __attribute, ATTRIBUTE, RID_UNUSED
__attribute__, ATTRIBUTE, RID_UNUSED __attribute__, ATTRIBUTE, RID_UNUSED
__builtin_va_arg, VA_ARG, RID_UNUSED
__complex, TYPESPEC, RID_COMPLEX __complex, TYPESPEC, RID_COMPLEX
__complex__, TYPESPEC, RID_COMPLEX __complex__, TYPESPEC, RID_COMPLEX
__const, CV_QUALIFIER, RID_CONST __const, CV_QUALIFIER, RID_CONST
......
/* C code produced by gperf version 2.7.1 (19981006 egcs) */ /* C code produced by gperf version 2.7 */
/* Command-line: gperf -L C -F , 0, 0 -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ ../../../gcc/cp/gxx.gperf */ /* Command-line: gperf -L C -F , 0, 0 -p -j1 -g -o -t -N is_reserved_word -k1,4,7,$ ../../../../egcs/gcc/cp/gxx.gperf */
/* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */ /* Command-line: gperf -L KR-C -F ', 0, 0' -p -j1 -g -o -t -N is_reserved_word -k1,4,$,7 gplus.gperf */
struct resword { const char *name; short token; enum rid rid;}; struct resword { const char *name; short token; enum rid rid;};
#define TOTAL_KEYWORDS 106 #define TOTAL_KEYWORDS 107
#define MIN_WORD_LENGTH 2 #define MIN_WORD_LENGTH 2
#define MAX_WORD_LENGTH 16 #define MAX_WORD_LENGTH 16
#define MIN_HASH_VALUE 4 #define MIN_HASH_VALUE 4
#define MAX_HASH_VALUE 250 #define MAX_HASH_VALUE 244
/* maximum key range = 247, duplicates = 0 */ /* maximum key range = 241, duplicates = 0 */
#ifdef __GNUC__ #ifdef __GNUC__
__inline __inline
...@@ -20,32 +20,32 @@ hash (str, len) ...@@ -20,32 +20,32 @@ hash (str, len)
{ {
static unsigned char asso_values[] = static unsigned char asso_values[] =
{ {
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 0, 251, 64, 93, 3, 245, 245, 245, 245, 245, 0, 245, 92, 3, 3,
0, 0, 74, 35, 0, 26, 251, 2, 31, 65, 0, 0, 75, 24, 0, 90, 245, 10, 31, 49,
23, 76, 7, 19, 45, 37, 6, 64, 12, 38, 23, 74, 0, 24, 30, 37, 6, 77, 10, 19,
14, 4, 251, 251, 251, 251, 251, 251, 251, 251, 5, 4, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245,
251, 251, 251, 251, 251, 251 245, 245, 245, 245, 245, 245
}; };
register int hval = len; register int hval = len;
...@@ -83,142 +83,152 @@ is_reserved_word (str, len) ...@@ -83,142 +83,152 @@ is_reserved_word (str, len)
{"delete", DELETE, RID_UNUSED,}, {"delete", DELETE, RID_UNUSED,},
{"case", CASE, RID_UNUSED,}, {"case", CASE, RID_UNUSED,},
{"__real__", REALPART, RID_UNUSED}, {"__real__", REALPART, RID_UNUSED},
{"", 0, 0}, {"double", TYPESPEC, RID_DOUBLE,},
{"true", CXX_TRUE, RID_UNUSED,}, {"true", CXX_TRUE, RID_UNUSED,},
{"catch", CATCH, RID_UNUSED,}, {"catch", CATCH, RID_UNUSED,},
{"typeid", TYPEID, RID_UNUSED,}, {"typeid", TYPEID, RID_UNUSED,},
{"try", TRY, RID_UNUSED,}, {"try", TRY, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0},
{"void", TYPESPEC, RID_VOID,}, {"void", TYPESPEC, RID_VOID,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"private", VISSPEC, RID_PRIVATE,}, {"private", VISSPEC, RID_PRIVATE,},
{"", 0, 0}, {"", 0, 0},
{"template", TEMPLATE, RID_TEMPLATE,}, {"template", TEMPLATE, RID_TEMPLATE,},
{"protected", VISSPEC, RID_PROTECTED,}, {"protected", VISSPEC, RID_PROTECTED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"extern", SCSPEC, RID_EXTERN,}, {"extern", SCSPEC, RID_EXTERN,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"not", '!', RID_UNUSED,}, {"not", '!', RID_UNUSED,},
{"", 0, 0}, {"", 0, 0},
{"xor_eq", ASSIGN, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0},
{"__signed", TYPESPEC, RID_SIGNED},
{"int", TYPESPEC, RID_INT,},
{"__signed__", TYPESPEC, RID_SIGNED},
{"__real", REALPART, RID_UNUSED}, {"__real", REALPART, RID_UNUSED},
{"", 0, 0}, {"xor", '^', RID_UNUSED,},
{"xor_eq", ASSIGN, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"__attribute", ATTRIBUTE, RID_UNUSED},
{"__asm__", ASM_KEYWORD, RID_UNUSED},
{"__attribute__", ATTRIBUTE, RID_UNUSED},
{"compl", '~', RID_UNUSED,}, {"compl", '~', RID_UNUSED,},
{"public", VISSPEC, RID_PUBLIC,}, {"public", VISSPEC, RID_PUBLIC,},
{"not_eq", EQCOMPARE, RID_UNUSED,},
{"switch", SWITCH, RID_UNUSED,},
{"__extension__", EXTENSION, RID_UNUSED}, {"__extension__", EXTENSION, RID_UNUSED},
{"__restrict__", CV_QUALIFIER, RID_RESTRICT},
{"", 0, 0},
{"__asm__", ASM_KEYWORD, RID_UNUSED},
{"new", NEW, RID_UNUSED,},
{"__restrict", CV_QUALIFIER, RID_RESTRICT},
{"", 0, 0},
{"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,},
{"switch", SWITCH, RID_UNUSED,},
{"", 0, 0},
{"const", CV_QUALIFIER, RID_CONST,}, {"const", CV_QUALIFIER, RID_CONST,},
{"static", SCSPEC, RID_STATIC,}, {"static", SCSPEC, RID_STATIC,},
{"", 0, 0}, {"not_eq", EQCOMPARE, RID_UNUSED,},
{"__inline", SCSPEC, RID_INLINE}, {"__inline", SCSPEC, RID_INLINE},
{"", 0, 0}, {"while", WHILE, RID_UNUSED,},
{"__inline__", SCSPEC, RID_INLINE}, {"__inline__", SCSPEC, RID_INLINE},
{"__restrict__", CV_QUALIFIER, RID_RESTRICT}, {"__imag__", IMAGPART, RID_UNUSED},
{"inline", SCSPEC, RID_INLINE,}, {"", 0, 0},
{"const_cast", CONST_CAST, RID_UNUSED,}, {"const_cast", CONST_CAST, RID_UNUSED,},
{"static_cast", STATIC_CAST, RID_UNUSED,}, {"static_cast", STATIC_CAST, RID_UNUSED,},
{"__restrict", CV_QUALIFIER, RID_RESTRICT}, {"", 0, 0}, {"", 0, 0},
{"xor", '^', RID_UNUSED,}, {"typename", TYPENAME_KEYWORD, RID_UNUSED,},
{"__wchar_t", TYPESPEC, RID_WCHAR /* Unique to ANSI C++ */,}, {"", 0, 0},
{"new", NEW, RID_UNUSED,},
{"__alignof__", ALIGNOF, RID_UNUSED}, {"__alignof__", ALIGNOF, RID_UNUSED},
{"signed", TYPESPEC, RID_SIGNED,}, {"signed", TYPESPEC, RID_SIGNED,},
{"and", ANDAND, RID_UNUSED,}, {"char", TYPESPEC, RID_CHAR,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"explicit", SCSPEC, RID_EXPLICIT,},
{"", 0, 0}, {"", 0, 0},
{"__imag__", IMAGPART, RID_UNUSED}, {"bool", TYPESPEC, RID_BOOL,},
{"while", WHILE, RID_UNUSED,}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"do", DO, RID_UNUSED,}, {"do", DO, RID_UNUSED,},
{"typename", TYPENAME_KEYWORD, RID_UNUSED,}, {"", 0, 0},
{"short", TYPESPEC, RID_SHORT,},
{"__imag", IMAGPART, RID_UNUSED},
{"", 0, 0},
{"friend", SCSPEC, RID_FRIEND,}, {"friend", SCSPEC, RID_FRIEND,},
{"continue", CONTINUE, RID_UNUSED,},
{"class", AGGR, RID_CLASS,}, {"class", AGGR, RID_CLASS,},
{"default", DEFAULT, RID_UNUSED,}, {"long", TYPESPEC, RID_LONG,},
{"this", THIS, RID_UNUSED,}, {"this", THIS, RID_UNUSED,},
{"dynamic_cast", DYNAMIC_CAST, RID_UNUSED,},
{"typeof", TYPEOF, RID_UNUSED,},
{"virtual", SCSPEC, RID_VIRTUAL,}, {"virtual", SCSPEC, RID_VIRTUAL,},
{"export", SCSPEC, RID_EXPORT,}, {"export", SCSPEC, RID_EXPORT,},
{"and_eq", ASSIGN, RID_UNUSED,}, {"typeof", TYPEOF, RID_UNUSED,},
{"__typeof__", TYPEOF, RID_UNUSED}, {"__typeof__", TYPEOF, RID_UNUSED},
{"__const__", CV_QUALIFIER, RID_CONST}, {"__const__", CV_QUALIFIER, RID_CONST},
{"__volatile", CV_QUALIFIER, RID_VOLATILE}, {"__volatile", CV_QUALIFIER, RID_VOLATILE},
{"short", TYPESPEC, RID_SHORT,}, {"__asm", ASM_KEYWORD, RID_UNUSED},
{"__volatile__", CV_QUALIFIER, RID_VOLATILE}, {"__volatile__", CV_QUALIFIER, RID_VOLATILE},
{"__const", CV_QUALIFIER, RID_CONST}, {"__const", CV_QUALIFIER, RID_CONST},
{"namespace", NAMESPACE, RID_UNUSED,}, {"continue", CONTINUE, RID_UNUSED,},
{"char", TYPESPEC, RID_CHAR,}, {"and", ANDAND, RID_UNUSED,},
{"unsigned", TYPESPEC, RID_UNSIGNED,}, {"", 0, 0}, {"", 0, 0},
{"double", TYPESPEC, RID_DOUBLE,}, {"__signed", TYPESPEC, RID_SIGNED},
{"int", TYPESPEC, RID_INT,},
{"__signed__", TYPESPEC, RID_SIGNED},
{"bitand", '&', RID_UNUSED,},
{"enum", ENUM, RID_UNUSED,},
{"or_eq", ASSIGN, RID_UNUSED,}, {"or_eq", ASSIGN, RID_UNUSED,},
{"throw", THROW, RID_UNUSED,},
{"reinterpret_cast", REINTERPRET_CAST, RID_UNUSED,},
{"or", OROR, RID_UNUSED,},
{"__attribute", ATTRIBUTE, RID_UNUSED},
{"for", FOR, RID_UNUSED,},
{"__attribute__", ATTRIBUTE, RID_UNUSED},
{"break", BREAK, RID_UNUSED,},
{"default", DEFAULT, RID_UNUSED,},
{"bitor", '|', RID_UNUSED,},
{"dynamic_cast", DYNAMIC_CAST, RID_UNUSED,},
{"__null", CONSTANT, RID_NULL}, {"__null", CONSTANT, RID_NULL},
{"if", IF, RID_UNUSED,},
{"__signature__", AGGR, RID_SIGNATURE /* Extension */,},
{"__label__", LABEL, RID_UNUSED},
{"long", TYPESPEC, RID_LONG,},
{"__imag", IMAGPART, RID_UNUSED},
{"__asm", ASM_KEYWORD, RID_UNUSED},
{"", 0, 0},
{"__sigof__", SIGOF, RID_UNUSED /* Extension */,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"struct", AGGR, RID_RECORD,},
{"", 0, 0}, {"", 0, 0},
{"volatile", CV_QUALIFIER, RID_VOLATILE,}, {"__complex__", TYPESPEC, RID_COMPLEX},
{"false", CXX_FALSE, RID_UNUSED,}, {"false", CXX_FALSE, RID_UNUSED,},
{"sizeof", SIZEOF, RID_UNUSED,}, {"sizeof", SIZEOF, RID_UNUSED,},
{"__complex__", TYPESPEC, RID_COMPLEX}, {"__complex", TYPESPEC, RID_COMPLEX},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"for", FOR, RID_UNUSED,}, {"and_eq", ASSIGN, RID_UNUSED,},
{"or", OROR, RID_UNUSED,}, {"__builtin_va_arg", VA_ARG, RID_UNUSED},
{"register", SCSPEC, RID_REGISTER,}, {"namespace", NAMESPACE, RID_UNUSED,},
{"throw", THROW, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0},
{"struct", AGGR, RID_RECORD,},
{"", 0, 0}, {"", 0, 0},
{"using", USING, RID_UNUSED,}, {"using", USING, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"__complex", TYPESPEC, RID_COMPLEX}, {"__label__", LABEL, RID_UNUSED},
{"", 0, 0}, {"", 0, 0},
{"explicit", SCSPEC, RID_EXPLICIT,},
{"return", RETURN_KEYWORD, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0},
{"__alignof", ALIGNOF, RID_UNUSED},
{"", 0, 0}, {"", 0, 0},
{"volatile", CV_QUALIFIER, RID_VOLATILE,},
{"", 0, 0}, {"", 0, 0},
{"asm", ASM_KEYWORD, RID_UNUSED,}, {"asm", ASM_KEYWORD, RID_UNUSED,},
{"", 0, 0},
{"signature", AGGR, RID_SIGNATURE /* Extension */,}, {"signature", AGGR, RID_SIGNATURE /* Extension */,},
{"enum", ENUM, RID_UNUSED,},
{"reinterpret_cast", REINTERPRET_CAST, RID_UNUSED,},
{"mutable", SCSPEC, RID_MUTABLE,},
{"__alignof", ALIGNOF, RID_UNUSED},
{"return", RETURN_KEYWORD, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0},
{"float", TYPESPEC, RID_FLOAT,}, {"mutable", SCSPEC, RID_MUTABLE,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"bool", TYPESPEC, RID_BOOL,}, {"register", SCSPEC, RID_REGISTER,},
{"", 0, 0}, {"", 0, 0},
{"__typeof", TYPEOF, RID_UNUSED},
{"", 0, 0}, {"", 0, 0},
{"typedef", SCSPEC, RID_TYPEDEF,}, {"typedef", SCSPEC, RID_TYPEDEF,},
{"__typeof", TYPEOF, RID_UNUSED},
{"bitand", '&', RID_UNUSED,},
{"break", BREAK, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"if", IF, RID_UNUSED,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"__sigof__", SIGOF, RID_UNUSED /* Extension */,},
{"unsigned", TYPESPEC, RID_UNSIGNED,},
{"goto", GOTO, RID_UNUSED,},
{"", 0, 0},
{"float", TYPESPEC, RID_FLOAT,},
{"union", AGGR, RID_UNION,}, {"union", AGGR, RID_UNION,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"inline", SCSPEC, RID_INLINE,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"goto", GOTO, RID_UNUSED,},
{"sigof", SIGOF, RID_UNUSED /* Extension */,}, {"sigof", SIGOF, RID_UNUSED /* Extension */,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"__signature__", AGGR, RID_SIGNATURE /* Extension */,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"bitor", '|', RID_UNUSED,}, {"operator", OPERATOR, RID_UNUSED,},
{"auto", SCSPEC, RID_AUTO,},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0}, {"", 0, 0},
{"", 0, 0}, {"", 0, 0}, {"auto", SCSPEC, RID_AUTO,}
{"operator", OPERATOR, RID_UNUSED,}
}; };
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE; typedef union {long itype; tree ttype; char *strtype; enum tree_code code; flagged_type_tree ftype; } YYSTYPE;
#define IDENTIFIER 258 #define IDENTIFIER 257
#define TYPENAME 259 #define TYPENAME 258
#define SELFNAME 260 #define SELFNAME 259
#define PFUNCNAME 261 #define PFUNCNAME 260
#define SCSPEC 262 #define SCSPEC 261
#define TYPESPEC 263 #define TYPESPEC 262
#define CV_QUALIFIER 264 #define CV_QUALIFIER 263
#define CONSTANT 265 #define CONSTANT 264
#define STRING 266 #define STRING 265
#define ELLIPSIS 267 #define ELLIPSIS 266
#define SIZEOF 268 #define SIZEOF 267
#define ENUM 269 #define ENUM 268
#define IF 270 #define IF 269
#define ELSE 271 #define ELSE 270
#define WHILE 272 #define WHILE 271
#define DO 273 #define DO 272
#define FOR 274 #define FOR 273
#define SWITCH 275 #define SWITCH 274
#define CASE 276 #define CASE 275
#define DEFAULT 277 #define DEFAULT 276
#define BREAK 278 #define BREAK 277
#define CONTINUE 279 #define CONTINUE 278
#define RETURN_KEYWORD 280 #define RETURN_KEYWORD 279
#define GOTO 281 #define GOTO 280
#define ASM_KEYWORD 282 #define ASM_KEYWORD 281
#define TYPEOF 283 #define TYPEOF 282
#define ALIGNOF 284 #define ALIGNOF 283
#define SIGOF 285 #define SIGOF 284
#define ATTRIBUTE 286 #define ATTRIBUTE 285
#define EXTENSION 287 #define EXTENSION 286
#define LABEL 288 #define LABEL 287
#define REALPART 289 #define REALPART 288
#define IMAGPART 290 #define IMAGPART 289
#define VA_ARG 290
#define AGGR 291 #define AGGR 291
#define VISSPEC 292 #define VISSPEC 292
#define DELETE 293 #define DELETE 293
......
...@@ -133,7 +133,7 @@ empty_parms () ...@@ -133,7 +133,7 @@ empty_parms ()
%token BREAK CONTINUE RETURN_KEYWORD GOTO ASM_KEYWORD TYPEOF ALIGNOF %token BREAK CONTINUE RETURN_KEYWORD GOTO ASM_KEYWORD TYPEOF ALIGNOF
%token SIGOF %token SIGOF
%token ATTRIBUTE EXTENSION LABEL %token ATTRIBUTE EXTENSION LABEL
%token REALPART IMAGPART %token REALPART IMAGPART VA_ARG
/* the reserved words... C++ extensions */ /* the reserved words... C++ extensions */
%token <ttype> AGGR %token <ttype> AGGR
...@@ -1162,6 +1162,9 @@ unary_expr: ...@@ -1162,6 +1162,9 @@ unary_expr:
{ $$ = build_x_unary_op (REALPART_EXPR, $2); } { $$ = build_x_unary_op (REALPART_EXPR, $2); }
| IMAGPART cast_expr %prec UNARY | IMAGPART cast_expr %prec UNARY
{ $$ = build_x_unary_op (IMAGPART_EXPR, $2); } { $$ = build_x_unary_op (IMAGPART_EXPR, $2); }
| VA_ARG '(' expr_no_commas ',' type_id ')'
{ $$ = build_va_arg ($3, groktypename ($5.t));
check_for_new_type ("__builtin_va_arg", $5); }
; ;
/* Note this rule is not suitable for use in new_placement /* Note this rule is not suitable for use in new_placement
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment