aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.co.uk>2003-04-24 20:03:57 +0000
committerNeil Booth <neil@gcc.gnu.org>2003-04-24 20:03:57 +0000
commit59325650b11bec0af9114c0dcb52567f33fbf2c0 (patch)
treefa1856ed3c0f3b53ff1a4cafc1fbd79f60892a66 /gcc
parentb746b8cb0a67a45e05da62c250a778033a1a9195 (diff)
downloadgcc-59325650b11bec0af9114c0dcb52567f33fbf2c0.zip
gcc-59325650b11bec0af9114c0dcb52567f33fbf2c0.tar.gz
gcc-59325650b11bec0af9114c0dcb52567f33fbf2c0.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cpplex.c14
-rw-r--r--gcc/cpplib.c2
-rw-r--r--gcc/cppmacro.c2
4 files changed, 16 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1ae16b2..89ba2f8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+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>
* config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
diff --git a/gcc/cpplex.c b/gcc/cpplex.c
index c9c0641..4f0767e 100644
--- a/gcc/cpplex.c
+++ b/gcc/cpplex.c
@@ -1094,8 +1094,8 @@ _cpp_lex_direct (pfile)
return result;
}
-/* An upper bound on the number of bytes needed to spell TOKEN,
- including preceding whitespace. */
+/* An upper bound on the number of bytes needed to spell TOKEN.
+ Does not include preceding whitespace. */
unsigned int
cpp_token_len (token)
const cpp_token *token;
@@ -1104,12 +1104,12 @@ cpp_token_len (token)
switch (TOKEN_SPELL (token))
{
- default: len = 0; break;
+ default: len = 4; break;
case SPELL_LITERAL: len = token->val.str.len; 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
@@ -1167,8 +1167,8 @@ unsigned char *
cpp_token_as_text (pfile, token)
cpp_reader *pfile;
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;
end = cpp_spell_token (pfile, token, start);
diff --git a/gcc/cpplib.c b/gcc/cpplib.c
index 9b95ac9..271aa5d 100644
--- a/gcc/cpplib.c
+++ b/gcc/cpplib.c
@@ -594,7 +594,7 @@ glue_header_name (pfile)
break;
}
- len = cpp_token_len (token);
+ len = cpp_token_len (token) + 2; /* Leading space, terminating \0. */
if (total_len + len > capacity)
{
capacity = (capacity + len) * 2;
diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c
index b0b10ae..f77f6b3 100644
--- a/gcc/cppmacro.c
+++ b/gcc/cppmacro.c
@@ -1715,7 +1715,7 @@ cpp_macro_definition (pfile, node)
if (token->type == CPP_MACRO_ARG)
len += NODE_LEN (macro->params[token->val.arg_no - 1]);
else
- len += cpp_token_len (token); /* Includes room for ' '. */
+ len += cpp_token_len (token) + 1; /* Includes room for ' '. */
if (token->flags & STRINGIFY_ARG)
len++; /* "#" */
if (token->flags & PASTE_LEFT)