]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cselib: dump_cselib_* fixes
authorAlexandre Oliva <oliva@adacore.com>
Sun, 7 Dec 2025 01:08:04 +0000 (22:08 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Sun, 7 Dec 2025 01:08:04 +0000 (22:08 -0300)
Rework dump_cselib_table to not crash when cselib_preserved_hash_table
is not allocated, and to remove the extraneous indirection from
dump_cselib_val that made it inconvenient to call from a debugger.

for  gcc/ChangeLog

* cselib.cc (dump_cselib_val): Split out of and rename to...
(dump_cselib_val_ptr): ... this.
(dump_cselib_table): Adjust.  Skip cselib_preserved_hash_table
when not allocated.

gcc/cselib.cc

index 7f1991b09c3c8fd107b1a483d9dc47b9e1b1cdd7..930357409bc54d38d5fbb954d440b16cea513155 100644 (file)
@@ -3459,12 +3459,11 @@ cselib_finish (void)
   next_uid = 0;
 }
 
-/* Dump the cselib_val *X to FILE *OUT.  */
+/* Dump the cselib_val V to FILE *OUT.  */
 
 int
-dump_cselib_val (cselib_val **x, FILE *out)
+dump_cselib_val (cselib_val *v, FILE *out)
 {
-  cselib_val *v = *x;
   bool need_lf = true;
 
   print_inline_rtx (out, v->val_rtx, 0);
@@ -3533,15 +3532,27 @@ dump_cselib_val (cselib_val **x, FILE *out)
   return 1;
 }
 
+/* Dump the cselib_val *X to FILE *OUT.  */
+
+static int
+dump_cselib_val_ptr (cselib_val **x, FILE *out)
+{
+  cselib_val *v = *x;
+  return dump_cselib_val (v, out);
+}
+
 /* Dump to OUT everything in the CSELIB table.  */
 
 void
 dump_cselib_table (FILE *out)
 {
   fprintf (out, "cselib hash table:\n");
-  cselib_hash_table->traverse <FILE *, dump_cselib_val> (out);
-  fprintf (out, "cselib preserved hash table:\n");
-  cselib_preserved_hash_table->traverse <FILE *, dump_cselib_val> (out);
+  cselib_hash_table->traverse <FILE *, dump_cselib_val_ptr> (out);
+  if (cselib_preserved_hash_table)
+    {
+      fprintf (out, "cselib preserved hash table:\n");
+      cselib_preserved_hash_table->traverse <FILE *, dump_cselib_val_ptr> (out);
+    }
   if (first_containing_mem != &dummy_val)
     {
       fputs ("first mem ", out);