Commit d1f43464 by Tom Tromey Committed by Tom Tromey

* stringpool.c (ggc_alloc_string): Terminate string.

From-SVN: r140859
parent 32001f69
2008-10-03 Tom Tromey <tromey@redhat.com>
* stringpool.c (ggc_alloc_string): Terminate string.
2008-10-03 Jakub Jelinek <jakub@redhat.com> 2008-10-03 Jakub Jelinek <jakub@redhat.com>
* gimplify.c (gimplify_function_tree): For -finstrument-functions * gimplify.c (gimplify_function_tree): For -finstrument-functions
......
...@@ -18,9 +18,8 @@ You should have received a copy of the GNU General Public License ...@@ -18,9 +18,8 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */ <http://www.gnu.org/licenses/>. */
/* String text, identifier text and identifier node allocator. Strings /* String text, identifier text and identifier node allocator.
allocated by ggc_alloc_string are stored in an obstack which is Identifiers are uniquely stored in a hash table.
never shrunk. Identifiers are uniquely stored in a hash table.
We use cpplib's hash table implementation. libiberty's We use cpplib's hash table implementation. libiberty's
hashtab.c is not used because it requires 100% average space hashtab.c is not used because it requires 100% average space
...@@ -76,9 +75,7 @@ alloc_node (hash_table *table ATTRIBUTE_UNUSED) ...@@ -76,9 +75,7 @@ alloc_node (hash_table *table ATTRIBUTE_UNUSED)
/* Allocate and return a string constant of length LENGTH, containing /* Allocate and return a string constant of length LENGTH, containing
CONTENTS. If LENGTH is -1, CONTENTS is assumed to be a CONTENTS. If LENGTH is -1, CONTENTS is assumed to be a
nul-terminated string, and the length is calculated using strlen. nul-terminated string, and the length is calculated using strlen. */
If the same string constant has been allocated before, that copy is
returned this time too. */
const char * const char *
ggc_alloc_string (const char *contents, int length) ggc_alloc_string (const char *contents, int length)
...@@ -94,7 +91,8 @@ ggc_alloc_string (const char *contents, int length) ...@@ -94,7 +91,8 @@ ggc_alloc_string (const char *contents, int length)
return digit_string (contents[0] - '0'); return digit_string (contents[0] - '0');
result = GGC_NEWVAR (char, length + 1); result = GGC_NEWVAR (char, length + 1);
memcpy (result, contents, length + 1); memcpy (result, contents, length);
result[length] = '\0';
return (const char *) result; return (const char *) result;
} }
......
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