[gcc(refs/vendors/redhat/heads/gcc-10-branch)] sanopt: Avoid crash on anonymous parameter [PR93436]

Jakub Jelinek jakub@gcc.gnu.org
Thu Jan 30 20:49:00 GMT 2020


https://gcc.gnu.org/g:ab6cd364eda21d3d24a4df0072c588cc68ff61e0

commit ab6cd364eda21d3d24a4df0072c588cc68ff61e0
Author: Marek Polacek <polacek@redhat.com>
Date:   Sat Jan 25 19:02:11 2020 -0500

    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.

Diff:
---
 gcc/ChangeLog | 6 ++++++
 gcc/sanopt.c  | 9 ++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e983d52..8f6f4ae 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 619aae4..0788eef 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));



More information about the Gcc-cvs mailing list