Hello!

This was uncovered by x86 lto-profiledbootstrap. The patch allows
lto-profiledbootstrap to proceed further.

2013-11-12  Uros Bizjak  <ubiz...@gmail.com>

    * 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);

Reply via email to