Hello!
This was uncovered by x86 lto-profiledbootstrap. The patch allows
lto-profiledbootstrap to proceed further.
2013-11-12 Uros Bizjak <[email protected]>
* cp-demangle.c (d_copy_templates): Cast result of malloc
to (struct d_print_template *).
(d_print_comp): Cast result of realloc to (struct d_saved scope *).
Tested on x86_64-pc-linux-gnu.
OK for mainline?
Uros.
Index: cp-demangle.c
===================================================================
--- cp-demangle.c (revision 204705)
+++ cp-demangle.c (working copy)
@@ -3968,7 +3968,7 @@ d_copy_templates (struct d_print_info *dpi)
for (src = dpi->templates; src != NULL; src = src->next)
{
struct d_print_template *dst =
- malloc (sizeof (struct d_print_template));
+ (struct d_print_template *) malloc (sizeof (struct d_print_template));
if (dst == NULL)
{
@@ -4381,14 +4381,16 @@ d_print_comp (struct d_print_info *dpi, int option
if (scope == NULL)
{
+ size_t size;
+
/* This is the first time SUB has been traversed.
We need to capture the current templates so
they can be restored if SUB is reentered as a
substitution. */
++dpi->num_saved_scopes;
- scopes = realloc (dpi->saved_scopes,
- sizeof (struct d_saved_scope)
- * dpi->num_saved_scopes);
+ size = sizeof (struct d_saved_scope) * dpi->num_saved_scopes;
+ scopes = (struct d_saved_scope *) realloc (dpi->saved_scopes,
+ size);
if (scopes == NULL)
{
d_print_error (dpi);
Index: cp-demangle.c
===================================================================
--- cp-demangle.c (revision 204705)
+++ cp-demangle.c (working copy)
@@ -3968,7 +3968,7 @@ d_copy_templates (struct d_print_info *dpi)
for (src = dpi->templates; src != NULL; src = src->next)
{
struct d_print_template *dst =
- malloc (sizeof (struct d_print_template));
+ (struct d_print_template *) malloc (sizeof (struct d_print_template));
if (dst == NULL)
{
@@ -4381,14 +4381,16 @@ d_print_comp (struct d_print_info *dpi, int option
if (scope == NULL)
{
+ size_t size;
+
/* This is the first time SUB has been traversed.
We need to capture the current templates so
they can be restored if SUB is reentered as a
substitution. */
++dpi->num_saved_scopes;
- scopes = realloc (dpi->saved_scopes,
- sizeof (struct d_saved_scope)
- * dpi->num_saved_scopes);
+ size = sizeof (struct d_saved_scope) * dpi->num_saved_scopes;
+ scopes = (struct d_saved_scope *) realloc (dpi->saved_scopes,
+ size);
if (scopes == NULL)
{
d_print_error (dpi);