diff options
author | Nathan Sidwell <nathan@acm.org> | 2018-08-20 12:39:36 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2018-08-20 12:39:36 +0000 |
commit | 3fb558b154f795983ae6a9dd6478e18a2c846584 (patch) | |
tree | 2c06bad74d6dafddb11979c263020425a716902c /libcpp/macro.c | |
parent | b655b8fc7eb4af02231fa0105dddd90a8cfceea1 (diff) | |
download | gcc-3fb558b154f795983ae6a9dd6478e18a2c846584.zip gcc-3fb558b154f795983ae6a9dd6478e18a2c846584.tar.gz gcc-3fb558b154f795983ae6a9dd6478e18a2c846584.tar.bz2 |
[PATCH] #assert becomes macro-like
https://gcc.gnu.org/ml/gcc-patches/2018-08/msg01140.html
libcpp/
* include/cpp-id-data.h (struct answer): Delete.
* include/cpplib.h (struct answer): Don't forward-declare.
(enum cpp_macro_kind): Add cmk_assert.
(struct cpp_macro): Union parms and next assert chain.
(union _cpp_hashnode_value): 'answer' field is cpp_macro.
* directives.c (parse_answer): Convert to use cpp_macro. Return
true on success.
(parse_assertion, find_answer, _cpp_test_assertion, cpp_do_assert)
(cpp_do_unassert): Convert to use cpp_macro.
* macro.c (warn_of_redefinition, _cpp_new_macro)
(check_trad_stringification, cpp_macro_definition): Adjust macro
parm access.
* traditional.c (_cpp_replacement_text_len)
(_cpp_copy_replacement_text, _cpp_create_trad_definition): Likewise.
gcc/c-family/
* c-ada-spec.c (macro_length, dump_ada_macros): Adjust macro parm
access.
From-SVN: r263658
Diffstat (limited to 'libcpp/macro.c')
-rw-r--r-- | libcpp/macro.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/libcpp/macro.c b/libcpp/macro.c index 369a461..0f9e25d 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -3017,7 +3017,7 @@ warn_of_redefinition (cpp_reader *pfile, cpp_hashnode *node, /* Check parameter spellings. */ for (i = 0; i < macro1->paramc; i++) - if (macro1->params[i] != macro2->params[i]) + if (macro1->parm.params[i] != macro2->parm.params[i]) return true; /* Check the replacement text or tokens. */ @@ -3326,7 +3326,7 @@ create_iso_definition (cpp_reader *pfile) { macro->variadic = varadic; macro->paramc = nparms; - macro->params = params; + macro->parm.params = params; macro->fun_like = true; } else @@ -3472,7 +3472,7 @@ _cpp_new_macro (cpp_reader *pfile, cpp_macro_kind kind, void *placement) cpp_macro *macro = (cpp_macro *) placement; macro->line = pfile->directive_line; - macro->params = 0; + macro->parm.params = 0; macro->lazy = 0; macro->paramc = 0; macro->variadic = 0; @@ -3618,7 +3618,7 @@ check_trad_stringification (cpp_reader *pfile, const cpp_macro *macro, identifier inside the string matches one of them. */ for (i = 0; i < macro->paramc; i++) { - const cpp_hashnode *node = macro->params[i]; + const cpp_hashnode *node = macro->parm.params[i]; if (NODE_LEN (node) == len && !memcmp (p, NODE_NAME (node), len)) @@ -3663,7 +3663,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) len += 4; /* "()" plus possible final ".." of named varargs (we have + 1 below). */ for (i = 0; i < macro->paramc; i++) - len += NODE_LEN (macro->params[i]) + 1; /* "," */ + len += NODE_LEN (macro->parm.params[i]) + 1; /* "," */ } /* This should match below where we fill in the buffer. */ @@ -3707,7 +3707,7 @@ cpp_macro_definition (cpp_reader *pfile, cpp_hashnode *node) *buffer++ = '('; for (i = 0; i < macro->paramc; i++) { - cpp_hashnode *param = macro->params[i]; + cpp_hashnode *param = macro->parm.params[i]; if (param != pfile->spec_nodes.n__VA_ARGS__) { |