+2000-11-06 Neil Booth <neilb@earthling.net>
+
+ * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
+ tok.val.arg_no as appropriate.
+ * cppexp.c (lex): Similarly.
+ * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
+ cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
+ * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
+ cpp_macro_definition): Similarly.
+ * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
+
2000-11-06 Jakub Jelinek <jakub@redhat.com>
* config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
case CPP_OPEN_BRACE: indent_level++; break;
case CPP_CLOSE_BRACE: indent_level--; break;
- /* Issue this error here, where we can get at tok.val.aux. */
+ /* Issue this error here, where we can get at tok.val.c. */
case CPP_OTHER:
- if (ISGRAPH (tok.val.aux))
- error ("stray '%c' in program", tok.val.aux);
+ if (ISGRAPH (tok.val.c))
+ error ("stray '%c' in program", tok.val.c);
else
- error ("stray '\\%#o' in program", tok.val.aux);
+ error ("stray '\\%#o' in program", tok.val.c);
goto retry;
case CPP_NAME:
SYNTAX_ERROR ("floating point numbers are not valid in #if");
case CPP_OTHER:
- if (ISGRAPH (token->val.aux))
- SYNTAX_ERROR2 ("invalid character '%c' in #if", token->val.aux);
+ if (ISGRAPH (token->val.c))
+ SYNTAX_ERROR2 ("invalid character '%c' in #if", token->val.c);
else
- SYNTAX_ERROR2 ("invalid character '\\%03o' in #if", token->val.aux);
+ SYNTAX_ERROR2 ("invalid character '\\%03o' in #if", token->val.c);
case CPP_NAME:
if (token->val.node == pfile->spec_nodes.n_defined)
random_char:
default:
result->type = CPP_OTHER;
- result->val.aux = c;
+ result->val.c = c;
break;
}
}
break;
case SPELL_CHAR:
- *buffer++ = token->val.aux;
+ *buffer++ = token->val.c;
break;
case SPELL_NONE:
break;
case SPELL_CHAR:
- putc (token->val.aux, fp);
+ putc (token->val.c, fp);
break;
case SPELL_NONE:
case SPELL_OPERATOR:
return 1;
case SPELL_CHAR:
- return a->val.aux == b->val.aux; /* Character. */
+ return a->val.c == b->val.c; /* Character. */
case SPELL_NONE:
- return (a->type != CPP_MACRO_ARG || a->val.aux == b->val.aux);
+ return (a->type != CPP_MACRO_ARG || a->val.c == b->val.c);
case SPELL_IDENT:
return a->val.node == b->val.node;
case SPELL_STRING:
break;
case CPP_OTHER:
- if (CPP_OPTION (pfile, objc) && token1->val.aux == '@')
+ if (CPP_OPTION (pfile, objc) && token1->val.c == '@')
{
if (b == CPP_NAME) return CPP_NAME;
if (b == CPP_STRING) return CPP_OSTRING;
case CPP_NUMBER: return (b == CPP_NUMBER || b == CPP_NAME
|| c == '.' || c == '+' || c == '-');
case CPP_OTHER: return (CPP_OPTION (pfile, objc)
- && token1->val.aux == '@'
+ && token1->val.c == '@'
&& (b == CPP_NAME || b == CPP_STRING));
default: break;
}
union
{
- HOST_WIDEST_INT integer; /* an integer */
- struct cpp_hashnode *node; /* an identifier */
- struct cpp_string str; /* a string, or number */
- unsigned int aux; /* argument no. for a CPP_MACRO_ARG, or
- character represented by CPP_OTHER. */
+ HOST_WIDEST_INT integer; /* An integer. */
+ struct cpp_hashnode *node; /* An identifier. */
+ struct cpp_string str; /* A string, or number. */
+ unsigned int arg_no; /* Argument no. for a CPP_MACRO_ARG. */
+ unsigned char c; /* Character represented by CPP_OTHER. */
} val;
};
dest = cpp_spell_token (pfile, token, dest);
total_len = dest - start;
- if (token->type == CPP_OTHER && token->val.aux == '\\')
+ if (token->type == CPP_OTHER && token->val.c == '\\')
backslash_count++;
else
backslash_count = 0;
{
/* We have an argument. If it is not being stringified or
pasted it is macro-replaced before insertion. */
- arg = &args[src->val.aux - 1];
+ arg = &args[src->val.arg_no - 1];
if (src->flags & STRINGIFY_ARG)
{
if (!arg->stringified)
unsigned int count;
const cpp_token *from;
- arg = &args[src->val.aux - 1];
+ arg = &args[src->val.arg_no - 1];
if (src->flags & STRINGIFY_ARG)
from = arg->stringified, count = 1;
else if ((src->flags & PASTE_LEFT)
it is a variable argument, it is also flagged. */
dest->flags &= ~PREV_WHITE;
dest->flags |= src->flags & PREV_WHITE;
- if (macro->var_args && src->val.aux == macro->paramc)
+ if (macro->var_args && src->val.arg_no == macro->paramc)
dest->flags |= VARARGS_FIRST;
/* The last token gets the PASTE_LEFT of the CPP_MACRO_ARG. */
if (token->type == CPP_NAME && token->val.node->arg_index)
{
token->type = CPP_MACRO_ARG;
- token->val.aux = token->val.node->arg_index;
+ token->val.arg_no = token->val.node->arg_index;
}
else if (CPP_WTRADITIONAL (pfile) && macro->paramc > 0
&& (token->type == CPP_STRING || token->type == CPP_CHAR))
cpp_token *token = ¯o->expansion[i];
if (token->type == CPP_MACRO_ARG)
- len += macro->params[token->val.aux - 1]->length;
+ len += macro->params[token->val.arg_no - 1]->length;
else
len += cpp_token_len (token); /* Includes room for ' '. */
if (token->flags & STRINGIFY_ARG)
if (token->type == CPP_MACRO_ARG)
{
- len = macro->params[token->val.aux - 1]->length;
- memcpy (buffer, macro->params[token->val.aux - 1]->name, len);
+ len = macro->params[token->val.arg_no - 1]->length;
+ memcpy (buffer, macro->params[token->val.arg_no - 1]->name, len);
buffer += len;
}
else