diff options
author | Neil Booth <neil@daikokuya.co.uk> | 2003-04-24 20:03:57 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2003-04-24 20:03:57 +0000 |
commit | 59325650b11bec0af9114c0dcb52567f33fbf2c0 (patch) | |
tree | fa1856ed3c0f3b53ff1a4cafc1fbd79f60892a66 /gcc | |
parent | b746b8cb0a67a45e05da62c250a778033a1a9195 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cpplex.c | 14 | ||||
-rw-r--r-- | gcc/cpplib.c | 2 | ||||
-rw-r--r-- | gcc/cppmacro.c | 2 |
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) |