Commit f617b8e2 by Neil Booth Committed by Neil Booth

cpphash.c (trad_stringify, [...]): Make some pointers pointers to const.

	* cpphash.c (trad_stringify, warn_trad_stringify,
	collect_params): Make some pointers pointers to const.
	* cpplex.c (auto_expand_name_space) Guaranteed to always
	expand by at least one character.
	(SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
	(struct token_spelling): Use const U_CHAR * rather than PTR.
	(expand_name_space): Fix up token pointers if name space
	is moved when expanding.
	(INIT_NAME, cpp_scan_line, parse_name, parse_number,
	parse_string2, save_comment, spell_token, cpp_output_list):
	Update so the routines handle tokens with a direct pointer to
	their text, rather than an offset into the token's list's namebuf.
	(_cpp_lex_line): Rearrange for clarity.

	* cpplib.c (_cpp_check_directive): Similarly.
	(do_define): Make SYM a pointer to const.
	* cpplib.h (struct cpp_name): Replace offset with direct pointer.
	(CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
	(TOK_OFFSET): Delete.
	(TOK_NAME): Update.

From-SVN: r33901
parent 05ef2698
2000-05-15 Neil Booth <NeilB@earthling.net>
* cpphash.c (trad_stringify, warn_trad_stringify,
collect_params): Make some pointers pointers to const.
* cpplex.c (auto_expand_name_space) Guaranteed to always
expand by at least one character.
(SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
(struct token_spelling): Use const U_CHAR * rather than PTR.
(expand_name_space): Fix up token pointers if name space
is moved when expanding.
(INIT_NAME, cpp_scan_line, parse_name, parse_number,
parse_string2, save_comment, spell_token, cpp_output_list):
Update so the routines handle tokens with a direct pointer to
their text, rather than an offset into the token's list's namebuf.
(_cpp_lex_line): Rearrange for clarity.
* cpplib.c (_cpp_check_directive): Similarly.
(do_define): Make SYM a pointer to const.
* cpplib.h (struct cpp_name): Replace offset with direct pointer.
(CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
(TOK_OFFSET): Delete.
(TOK_NAME): Update.
2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
* config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
......
......@@ -162,9 +162,10 @@ collect_funlike_expansion PARAMS ((cpp_reader *, cpp_toklist *,
static unsigned int collect_params PARAMS ((cpp_reader *, cpp_toklist *,
struct arglist *));
static void warn_trad_stringify PARAMS ((cpp_reader *, U_CHAR *, size_t,
static void warn_trad_stringify PARAMS ((cpp_reader *, const U_CHAR *, size_t,
unsigned int, const struct arg *));
static unsigned int trad_stringify PARAMS ((cpp_reader *, U_CHAR *, size_t,
static unsigned int trad_stringify PARAMS ((cpp_reader *, const U_CHAR *,
size_t,
unsigned int, const struct arg *,
struct reflist **,
struct reflist **, unsigned int));
......@@ -371,12 +372,12 @@ add_pat (pat, endpat, nchars, argno, raw_before, raw_after, strize, rest)
static void
warn_trad_stringify (pfile, p, len, argc, argv)
cpp_reader *pfile;
U_CHAR *p;
const U_CHAR *p;
size_t len;
unsigned int argc;
const struct arg *argv;
{
U_CHAR *limit;
const U_CHAR *limit;
unsigned int i;
limit = p + len;
......@@ -406,14 +407,14 @@ warn_trad_stringify (pfile, p, len, argc, argv)
static unsigned int
trad_stringify (pfile, base, len, argc, argv, pat, endpat, last)
cpp_reader *pfile;
U_CHAR *base;
const U_CHAR *base;
size_t len;
unsigned int argc;
const struct arg *argv;
struct reflist **pat, **endpat;
unsigned int last;
{
U_CHAR *p, *limit;
const U_CHAR *p, *limit;
unsigned int i;
p = base;
......@@ -548,7 +549,8 @@ collect_funlike_expansion (pfile, list, arglist, replacement)
int j, argc;
size_t len;
const struct arg *argv;
U_CHAR *tok, *exp;
const U_CHAR *tok;
U_CHAR *exp;
enum { START = 0, NORM, ARG, STRIZE, PASTE } last_token = START;
argv = arglist->argv;
......@@ -728,7 +730,8 @@ collect_params (pfile, list, arglist)
struct arglist *arglist;
{
struct arg *argv = 0;
U_CHAR *namebuf, *p, *tok;
const U_CHAR *tok;
U_CHAR *namebuf, *p;
unsigned int len, argslen;
unsigned int argc, a, i, j;
......
......@@ -156,7 +156,7 @@ _cpp_check_directive (list, token)
cpp_toklist *list;
cpp_token *token;
{
const U_CHAR *name = list->namebuf + token->val.name.offset;
const U_CHAR *name = token->val.name.text;
size_t len = token->val.name.len;
unsigned int i;
......@@ -339,7 +339,7 @@ do_define (pfile)
{
HASHNODE *node;
int len;
U_CHAR *sym;
const U_CHAR *sym;
cpp_toklist *list = &pfile->directbuf;
pfile->no_macro_expand++;
......
......@@ -110,8 +110,8 @@ typedef struct cpp_name cpp_name;
C(CPP_OTHER, 0) /* stray punctuation */ \
\
I(CPP_NAME, 0) /* word */ \
N(CPP_INT, 0) /* 23 */ \
N(CPP_FLOAT, 0) /* 3.14159 */ \
I(CPP_INT, 0) /* 23 */ \
I(CPP_FLOAT, 0) /* 3.14159 */ \
I(CPP_NUMBER, 0) /* 34_be+ta */ \
S(CPP_CHAR, 0) /* 'char' */ \
S(CPP_WCHAR, 0) /* L'char' */ \
......@@ -151,7 +151,7 @@ enum cpp_ttype
struct cpp_name
{
unsigned int len;
unsigned int offset; /* from list->namebuf */
const unsigned char *text;
};
/* Accessor macros for token lists - all expect you have a
......@@ -162,8 +162,7 @@ struct cpp_name
#define TOK_AUX(l_, i_) ((l_)->tokens[i_].aux)
#define TOK_COL(l_, i_) ((l_)->tokens[i_].col)
#define TOK_INT(l_, i_) ((l_)->tokens[i_].val.integer)
#define TOK_OFFSET(l_, i_) ((l_)->tokens[i_].val.name.offset)
#define TOK_NAME(l_, i_) ((l_)->tokens[i_].val.name.offset + (l_)->namebuf)
#define TOK_NAME(l_, i_) ((l_)->tokens[i_].val.name.text)
#define TOK_LEN(l_, i_) ((l_)->tokens[i_].val.name.len)
#define TOK_PREV_WHITE(l_, i_) (TOK_FLAGS(l_, i_) & PREV_WHITESPACE)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment