Applied as https://gcc.gnu.org/r250562

Johann

lto-plugin/
        Backport from 2017-07-21 trunk r250428.
        PR lto/81487
        * lto-plugin.c (claim_file_handler): Use xasprintf instead of
        asprintf.
        [hi!=0]: Swap hi and lo arguments supplied to xasprintf.
gcc/
        Backport from 2017-07-25 trunk r250499.
        PR 81487
        * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
        * gimple-pretty-print.c (dump_probability): Same.
        * tree-ssa-structalias.c (alias_get_name): Same.


On 26.07.2017 09:54, Richard Biener wrote:
On Tue, Jul 25, 2017 at 10:01 PM, Georg-Johann Lay <a...@gjlay.de> wrote:
Richard Biener schrieb:

On Mon, Jul 24, 2017 at 10:19 AM, Georg-Johann Lay <a...@gjlay.de> wrote:

Hi, as proposed in

https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01294.html

this patch does more asprintf -> xasprintf replacements.

Bootstrapped + reg-tested on x86_64-linux.

Ok for trunk?

Ok.

Thanks,
Richard.


Is this something we want to backport to v7 ?

Yes.

Richard.

Index: lto-plugin/lto-plugin.c
===================================================================
--- lto-plugin/lto-plugin.c	(revision 250560)
+++ lto-plugin/lto-plugin.c	(working copy)
@@ -975,17 +975,16 @@ claim_file_handler (const struct ld_plug
 
   if (file->offset != 0)
     {
-      char *objname;
       /* We pass the offset of the actual file, not the archive header.
          Can't use PRIx64, because that's C99, so we have to print the
-	 64-bit hex int as two 32-bit ones. */
-      int lo, hi, t;
+	 64-bit hex int as two 32-bit ones.  Use xasprintf instead of
+	 asprintf because asprintf doesn't work as expected on some older
+	 mingw32 hosts.  */
+      int lo, hi;
       lo = file->offset & 0xffffffff;
       hi = ((int64_t)file->offset >> 32) & 0xffffffff;
-      t = hi ? asprintf (&objname, "%s@0x%x%08x", file->name, lo, hi)
-	     : asprintf (&objname, "%s@0x%x", file->name, lo);
-      check (t >= 0, LDPL_FATAL, "asprintf failed");
-      lto_file.name = objname;
+      lto_file.name = hi ? xasprintf ("%s@0x%x%08x", file->name, hi, lo)
+      			 : xasprintf ("%s@0x%x", file->name, lo);
     }
   else
     {
Index: gcc/gimple-pretty-print.c
===================================================================
--- gcc/gimple-pretty-print.c	(revision 250560)
+++ gcc/gimple-pretty-print.c	(working copy)
@@ -89,7 +89,7 @@ dump_probability (int value)
     return "[0.01%]";
 
   char *buf;
-  asprintf (&buf, "[%.2f%%]", fvalue);
+  buf = xasprintf ("[%.2f%%]", fvalue);
   const char *ret = xstrdup_for_dump (buf);
   free (buf);
 
Index: gcc/tree-ssa-structalias.c
===================================================================
--- gcc/tree-ssa-structalias.c	(revision 250560)
+++ gcc/tree-ssa-structalias.c	(working copy)
@@ -2827,7 +2827,6 @@ alias_get_name (tree decl)
 {
   const char *res = NULL;
   char *temp;
-  int num_printed = 0;
 
   if (!dump_file)
     return "NULL";
@@ -2836,14 +2835,11 @@ alias_get_name (tree decl)
     {
       res = get_name (decl);
       if (res)
-	num_printed = asprintf (&temp, "%s_%u", res, SSA_NAME_VERSION (decl));
+	temp = xasprintf ("%s_%u", res, SSA_NAME_VERSION (decl));
       else
-	num_printed = asprintf (&temp, "_%u", SSA_NAME_VERSION (decl));
-      if (num_printed > 0)
-	{
-	  res = ggc_strdup (temp);
-	  free (temp);
-	}
+	temp = xasprintf ("_%u", SSA_NAME_VERSION (decl));
+      res = ggc_strdup (temp);
+      free (temp);
     }
   else if (DECL_P (decl))
     {
@@ -2854,12 +2850,9 @@ alias_get_name (tree decl)
 	  res = get_name (decl);
 	  if (!res)
 	    {
-	      num_printed = asprintf (&temp, "D.%u", DECL_UID (decl));
-	      if (num_printed > 0)
-		{
-		  res = ggc_strdup (temp);
-		  free (temp);
-		}
+	      temp = xasprintf ("D.%u", DECL_UID (decl));
+	      res = ggc_strdup (temp);
+	      free (temp);
 	    }
 	}
     }
Index: gcc/hsa-brig.c
===================================================================
--- gcc/hsa-brig.c	(revision 250560)
+++ gcc/hsa-brig.c	(working copy)
@@ -499,7 +499,7 @@ brig_init (void)
 	  else
 	    part++;
 	  char *modname2;
-	  asprintf (&modname2, "%s_%s", modname, part);
+	  modname2 = xasprintf ("%s_%s", modname, part);
 	  free (modname);
 	  modname = modname2;
 	}

Reply via email to