diff options
| author | mrg <mrg@NetBSD.org> | 2006-04-20 10:19:17 +0000 |
|---|---|---|
| committer | mrg <mrg@NetBSD.org> | 2006-04-20 10:19:17 +0000 |
| commit | bd52d17906ebf2f5ff761c35ce2a164adb682d0e (patch) | |
| tree | 04b08e0fba1381b23d7829a37250a997b8d48f20 /gnu/dist/gcc4/libcpp/include/cpp-id-data.h | |
| parent | 1cca0f02506c7cdf80a05c079f817a5f9c84e1a3 (diff) | |
initial import of GCC 4.1 branch, from 2006-04-20. list of changes way
too large to list, but see:
http://gcc.gnu.org/gcc-3.4/changes.html
http://gcc.gnu.org/gcc-4.0/changes.html
http://gcc.gnu.org/gcc-4.1/changes.html
for the details.
Diffstat (limited to 'gnu/dist/gcc4/libcpp/include/cpp-id-data.h')
| -rw-r--r-- | gnu/dist/gcc4/libcpp/include/cpp-id-data.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/gnu/dist/gcc4/libcpp/include/cpp-id-data.h b/gnu/dist/gcc4/libcpp/include/cpp-id-data.h new file mode 100644 index 00000000000..2445186c228 --- /dev/null +++ b/gnu/dist/gcc4/libcpp/include/cpp-id-data.h @@ -0,0 +1,78 @@ +/* Structures that hang off cpp_identifier, for PCH. + Copyright (C) 1986, 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, + 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. + +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 +Free Software Foundation; either version 2, or (at your option) any +later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ + +#include "cpplib.h" + +#if !defined (HAVE_UCHAR) && !defined (IN_GCC) +typedef unsigned char uchar; +#endif + +#define U (const unsigned char *) /* Intended use: U"string" */ + +/* Chained list of answers to an assertion. */ +struct answer GTY(()) +{ + struct answer *next; + unsigned int count; + cpp_token GTY ((length ("%h.count"))) first[1]; +}; + +/* Each macro definition is recorded in a cpp_macro structure. + Variadic macros cannot occur with traditional cpp. */ +struct cpp_macro GTY(()) +{ + /* Parameters, if any. */ + cpp_hashnode ** GTY ((nested_ptr (union tree_node, + "%h ? CPP_HASHNODE (GCC_IDENT_TO_HT_IDENT (%h)) : NULL", + "%h ? HT_IDENT_TO_GCC_IDENT (HT_NODE (%h)) : NULL"), + length ("%h.paramc"))) + params; + + /* Replacement tokens (ISO) or replacement text (traditional). See + comment at top of cpptrad.c for how traditional function-like + macros are encoded. */ + union cpp_macro_u + { + cpp_token * GTY ((tag ("0"), length ("%0.count"))) tokens; + const unsigned char * GTY ((tag ("1"))) text; + } GTY ((desc ("%1.traditional"))) exp; + + /* Definition line number. */ + source_location line; + + /* Number of tokens in expansion, or bytes for traditional macros. */ + unsigned int count; + + /* Number of parameters. */ + unsigned short paramc; + + /* If a function-like macro. */ + unsigned int fun_like : 1; + + /* If a variadic macro. */ + unsigned int variadic : 1; + + /* If macro defined in system header. */ + unsigned int syshdr : 1; + + /* Nonzero if it has been expanded or had its existence tested. */ + unsigned int used : 1; + + /* Indicate which field of 'exp' is in use. */ + unsigned int traditional : 1; +}; |
