aboutsummaryrefslogtreecommitdiff
path: root/libcpp/macro.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@acm.org>2018-08-20 12:39:36 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2018-08-20 12:39:36 +0000
commit3fb558b154f795983ae6a9dd6478e18a2c846584 (patch)
tree2c06bad74d6dafddb11979c263020425a716902c /libcpp/macro.c
parentb655b8fc7eb4af02231fa0105dddd90a8cfceea1 (diff)
downloadgcc-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.c12
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__)
{