From ab6cd364eda21d3d24a4df0072c588cc68ff61e0 Mon Sep 17 00:00:00 2001
From: Marek Polacek <polacek@redhat.com>
Date: Sat, 25 Jan 2020 19:02:11 -0500
Subject: [PATCH] sanopt: Avoid crash on anonymous parameter [PR93436]

Here we crash when using -fsanitize=address -fdump-tree-sanopt because
the dumping code uses IDENTIFIER_POINTER on a null DECL_NAME.  Instead,
we can print "<anonymous>" in such a case.  Or we could avoid printing
that diagnostic altogether.

2020-01-26  Marek Polacek  <polacek@redhat.com>

	PR tree-optimization/93436
	* sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
	null DECL_NAME.
---
 gcc/ChangeLog | 6 ++++++
 gcc/sanopt.c  | 9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e983d5233b1c..8f6f4ae7b80b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-01-26  Marek Polacek  <polacek@redhat.com>
+
+	PR tree-optimization/93436
+	* sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on
+	null DECL_NAME.
+
 2020-01-26  Jason Merrill  <jason@redhat.com>
 
 	PR c++/92601
diff --git a/gcc/sanopt.c b/gcc/sanopt.c
index 619aae45a15e..0788eef597ee 100644
--- a/gcc/sanopt.c
+++ b/gcc/sanopt.c
@@ -1174,9 +1174,12 @@ sanitize_rewrite_addressable_params (function *fun)
 	    continue;
 
 	  if (dump_file)
-	    fprintf (dump_file,
-		     "Rewriting parameter whose address is taken: %s\n",
-		     IDENTIFIER_POINTER (DECL_NAME (arg)));
+	    {
+	      fprintf (dump_file,
+		       "Rewriting parameter whose address is taken: ");
+	      print_generic_expr (dump_file, arg, dump_flags);
+	      fputc ('\n', dump_file);
+	    }
 
 	  SET_DECL_PT_UID (var, DECL_PT_UID (arg));
 
-- 
GitLab