Commit 59325650 by Neil Booth Committed by Neil Booth

cpplex.c (cpp_token_len): Tighten up.

	* cpplex.c (cpp_token_len): Tighten up.
	(cpp_token_as_text): Need extra byte now.
	* cpplib.c (glue_header_name): Need extra 2 bytes.
	* cppmacro.c (cpp_macro_definition): Need extra byte.

From-SVN: r66049
parent b746b8cb
2003-04-24 Neil Booth <neil@daikokuya.co.uk>
* cpplex.c (cpp_token_len): Tighten up.
(cpp_token_as_text): Need extra byte now.
* cpplib.c (glue_header_name): Need extra 2 bytes.
* cppmacro.c (cpp_macro_definition): Need extra byte.
2003-04-24 Alexander Kabaev <kan@FreeBSD.ORG> 2003-04-24 Alexander Kabaev <kan@FreeBSD.ORG>
* config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
......
...@@ -1094,8 +1094,8 @@ _cpp_lex_direct (pfile) ...@@ -1094,8 +1094,8 @@ _cpp_lex_direct (pfile)
return result; return result;
} }
/* An upper bound on the number of bytes needed to spell TOKEN, /* An upper bound on the number of bytes needed to spell TOKEN.
including preceding whitespace. */ Does not include preceding whitespace. */
unsigned int unsigned int
cpp_token_len (token) cpp_token_len (token)
const cpp_token *token; const cpp_token *token;
...@@ -1104,12 +1104,12 @@ cpp_token_len (token) ...@@ -1104,12 +1104,12 @@ cpp_token_len (token)
switch (TOKEN_SPELL (token)) switch (TOKEN_SPELL (token))
{ {
default: len = 0; break; default: len = 4; break;
case SPELL_LITERAL: len = token->val.str.len; break; case SPELL_LITERAL: len = token->val.str.len; break;
case SPELL_IDENT: len = NODE_LEN (token->val.node); break; case SPELL_IDENT: len = NODE_LEN (token->val.node); break;
} }
/* 1 for whitespace, 4 for comment delimiters. */
return len + 5; return len;
} }
/* Write the spelling of a token TOKEN to BUFFER. The buffer must /* Write the spelling of a token TOKEN to BUFFER. The buffer must
...@@ -1167,8 +1167,8 @@ unsigned char * ...@@ -1167,8 +1167,8 @@ unsigned char *
cpp_token_as_text (pfile, token) cpp_token_as_text (pfile, token)
cpp_reader *pfile; cpp_reader *pfile;
const cpp_token *token; const cpp_token *token;
{ {
unsigned int len = cpp_token_len (token); unsigned int len = cpp_token_len (token) + 1;
unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end; unsigned char *start = _cpp_unaligned_alloc (pfile, len), *end;
end = cpp_spell_token (pfile, token, start); end = cpp_spell_token (pfile, token, start);
......
...@@ -594,7 +594,7 @@ glue_header_name (pfile) ...@@ -594,7 +594,7 @@ glue_header_name (pfile)
break; break;
} }
len = cpp_token_len (token); len = cpp_token_len (token) + 2; /* Leading space, terminating \0. */
if (total_len + len > capacity) if (total_len + len > capacity)
{ {
capacity = (capacity + len) * 2; capacity = (capacity + len) * 2;
......
...@@ -1715,7 +1715,7 @@ cpp_macro_definition (pfile, node) ...@@ -1715,7 +1715,7 @@ cpp_macro_definition (pfile, node)
if (token->type == CPP_MACRO_ARG) if (token->type == CPP_MACRO_ARG)
len += NODE_LEN (macro->params[token->val.arg_no - 1]); len += NODE_LEN (macro->params[token->val.arg_no - 1]);
else else
len += cpp_token_len (token); /* Includes room for ' '. */ len += cpp_token_len (token) + 1; /* Includes room for ' '. */
if (token->flags & STRINGIFY_ARG) if (token->flags & STRINGIFY_ARG)
len++; /* "#" */ len++; /* "#" */
if (token->flags & PASTE_LEFT) if (token->flags & PASTE_LEFT)
......
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