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> 2000-05-14 Geoffrey Keating <geoffk@cygnus.com>
* config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
......
...@@ -162,9 +162,10 @@ collect_funlike_expansion PARAMS ((cpp_reader *, cpp_toklist *, ...@@ -162,9 +162,10 @@ collect_funlike_expansion PARAMS ((cpp_reader *, cpp_toklist *,
static unsigned int collect_params PARAMS ((cpp_reader *, cpp_toklist *, static unsigned int collect_params PARAMS ((cpp_reader *, cpp_toklist *,
struct arglist *)); 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 *)); 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 *, unsigned int, const struct arg *,
struct reflist **, struct reflist **,
struct reflist **, unsigned int)); struct reflist **, unsigned int));
...@@ -371,12 +372,12 @@ add_pat (pat, endpat, nchars, argno, raw_before, raw_after, strize, rest) ...@@ -371,12 +372,12 @@ add_pat (pat, endpat, nchars, argno, raw_before, raw_after, strize, rest)
static void static void
warn_trad_stringify (pfile, p, len, argc, argv) warn_trad_stringify (pfile, p, len, argc, argv)
cpp_reader *pfile; cpp_reader *pfile;
U_CHAR *p; const U_CHAR *p;
size_t len; size_t len;
unsigned int argc; unsigned int argc;
const struct arg *argv; const struct arg *argv;
{ {
U_CHAR *limit; const U_CHAR *limit;
unsigned int i; unsigned int i;
limit = p + len; limit = p + len;
...@@ -406,14 +407,14 @@ warn_trad_stringify (pfile, p, len, argc, argv) ...@@ -406,14 +407,14 @@ warn_trad_stringify (pfile, p, len, argc, argv)
static unsigned int static unsigned int
trad_stringify (pfile, base, len, argc, argv, pat, endpat, last) trad_stringify (pfile, base, len, argc, argv, pat, endpat, last)
cpp_reader *pfile; cpp_reader *pfile;
U_CHAR *base; const U_CHAR *base;
size_t len; size_t len;
unsigned int argc; unsigned int argc;
const struct arg *argv; const struct arg *argv;
struct reflist **pat, **endpat; struct reflist **pat, **endpat;
unsigned int last; unsigned int last;
{ {
U_CHAR *p, *limit; const U_CHAR *p, *limit;
unsigned int i; unsigned int i;
p = base; p = base;
...@@ -548,7 +549,8 @@ collect_funlike_expansion (pfile, list, arglist, replacement) ...@@ -548,7 +549,8 @@ collect_funlike_expansion (pfile, list, arglist, replacement)
int j, argc; int j, argc;
size_t len; size_t len;
const struct arg *argv; 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; enum { START = 0, NORM, ARG, STRIZE, PASTE } last_token = START;
argv = arglist->argv; argv = arglist->argv;
...@@ -728,7 +730,8 @@ collect_params (pfile, list, arglist) ...@@ -728,7 +730,8 @@ collect_params (pfile, list, arglist)
struct arglist *arglist; struct arglist *arglist;
{ {
struct arg *argv = 0; struct arg *argv = 0;
U_CHAR *namebuf, *p, *tok; const U_CHAR *tok;
U_CHAR *namebuf, *p;
unsigned int len, argslen; unsigned int len, argslen;
unsigned int argc, a, i, j; unsigned int argc, a, i, j;
......
...@@ -156,7 +156,7 @@ _cpp_check_directive (list, token) ...@@ -156,7 +156,7 @@ _cpp_check_directive (list, token)
cpp_toklist *list; cpp_toklist *list;
cpp_token *token; 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; size_t len = token->val.name.len;
unsigned int i; unsigned int i;
...@@ -339,7 +339,7 @@ do_define (pfile) ...@@ -339,7 +339,7 @@ do_define (pfile)
{ {
HASHNODE *node; HASHNODE *node;
int len; int len;
U_CHAR *sym; const U_CHAR *sym;
cpp_toklist *list = &pfile->directbuf; cpp_toklist *list = &pfile->directbuf;
pfile->no_macro_expand++; pfile->no_macro_expand++;
......
...@@ -110,8 +110,8 @@ typedef struct cpp_name cpp_name; ...@@ -110,8 +110,8 @@ typedef struct cpp_name cpp_name;
C(CPP_OTHER, 0) /* stray punctuation */ \ C(CPP_OTHER, 0) /* stray punctuation */ \
\ \
I(CPP_NAME, 0) /* word */ \ I(CPP_NAME, 0) /* word */ \
N(CPP_INT, 0) /* 23 */ \ I(CPP_INT, 0) /* 23 */ \
N(CPP_FLOAT, 0) /* 3.14159 */ \ I(CPP_FLOAT, 0) /* 3.14159 */ \
I(CPP_NUMBER, 0) /* 34_be+ta */ \ I(CPP_NUMBER, 0) /* 34_be+ta */ \
S(CPP_CHAR, 0) /* 'char' */ \ S(CPP_CHAR, 0) /* 'char' */ \
S(CPP_WCHAR, 0) /* L'char' */ \ S(CPP_WCHAR, 0) /* L'char' */ \
...@@ -151,7 +151,7 @@ enum cpp_ttype ...@@ -151,7 +151,7 @@ enum cpp_ttype
struct cpp_name struct cpp_name
{ {
unsigned int len; unsigned int len;
unsigned int offset; /* from list->namebuf */ const unsigned char *text;
}; };
/* Accessor macros for token lists - all expect you have a /* Accessor macros for token lists - all expect you have a
...@@ -162,8 +162,7 @@ struct cpp_name ...@@ -162,8 +162,7 @@ struct cpp_name
#define TOK_AUX(l_, i_) ((l_)->tokens[i_].aux) #define TOK_AUX(l_, i_) ((l_)->tokens[i_].aux)
#define TOK_COL(l_, i_) ((l_)->tokens[i_].col) #define TOK_COL(l_, i_) ((l_)->tokens[i_].col)
#define TOK_INT(l_, i_) ((l_)->tokens[i_].val.integer) #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.text)
#define TOK_NAME(l_, i_) ((l_)->tokens[i_].val.name.offset + (l_)->namebuf)
#define TOK_LEN(l_, i_) ((l_)->tokens[i_].val.name.len) #define TOK_LEN(l_, i_) ((l_)->tokens[i_].val.name.len)
#define TOK_PREV_WHITE(l_, i_) (TOK_FLAGS(l_, i_) & PREV_WHITESPACE) #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