summaryrefslogtreecommitdiff
path: root/gcc/cpphash.h
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-10 06:03:13 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-10 06:03:13 +0000
commit3396dc8065ec59cb307362fa820c58cb5cde9bff (patch)
treeadbb48f5611c4e938179b3f12970a0c7bef07ce1 /gcc/cpphash.h
parent08cb25b34934ce594d9f56eb9c56ef96ad6fedb4 (diff)
downloadgcc-3396dc8065ec59cb307362fa820c58cb5cde9bff.tar.gz
* cpphash.h (struct cpp_macro): Put comments on their own lines.
(_cpp_expansions_different_trad): New. * cppmacro.c (warn_of_redefinition): Fix for traditional case. * cpptrad.c (canonicalize_text): New. (scan_out_logical_line): Handle no arguments correctly. (save_replacement_text): Commit memory when finished. (_cpp_expansions_different_trad): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54432 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cpphash.h')
-rw-r--r--gcc/cpphash.h36
1 files changed, 27 insertions, 9 deletions
diff --git a/gcc/cpphash.h b/gcc/cpphash.h
index 6baf211958d..6d41ead6237 100644
--- a/gcc/cpphash.h
+++ b/gcc/cpphash.h
@@ -69,18 +69,35 @@ struct dummy
Variadic macros cannot occur with traditional cpp. */
struct cpp_macro
{
- cpp_hashnode **params; /* Parameters, if any. */
+ /* Parameters, if any. */
+ cpp_hashnode **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_token *tokens; /* Tokens of replacement list (ISO). */
- const uchar *text; /* Expansion text (traditional). */
+ cpp_token *tokens;
+ const uchar *text;
} exp;
- unsigned int line; /* Starting line number. */
- unsigned int count; /* Number of tokens / bytes in expansion. */
- unsigned short paramc; /* Number of parameters. */
- unsigned int fun_like : 1; /* If a function-like macro. */
- unsigned int variadic : 1; /* If a variadic macro. */
- unsigned int syshdr : 1; /* If macro defined in system header. */
+
+ /* Definition line number. */
+ unsigned int 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;
};
/* A generic memory buffer, and operations on it. */
@@ -499,6 +516,7 @@ extern void _cpp_overlay_buffer PARAMS ((cpp_reader *pfile, const uchar *,
extern cpp_hashnode *_cpp_lex_identifier_trad PARAMS ((cpp_reader *));
extern void _cpp_set_trad_context PARAMS ((cpp_reader *));
extern bool _cpp_create_trad_definition PARAMS ((cpp_reader *, cpp_macro *));
+extern bool _cpp_expansions_different_trad PARAMS ((cpp_macro *, cpp_macro *));
/* Utility routines and macros. */
#define DSC(str) (const uchar *)str, sizeof str - 1