rs6000: Handle print_operand_address for unexpected RTL (PR87598)
authorSegher Boessenkool <segher@kernel.crashing.org>
Mon, 22 Oct 2018 14:03:22 +0000 (16:03 +0200)
committerSegher Boessenkool <segher@gcc.gnu.org>
Mon, 22 Oct 2018 14:03:22 +0000 (16:03 +0200)
As the PR shows, the user can force this to be called on at least some
RTL that is not a valid address.  Most targets treat this as if the
user knows best; let's do the same.

PR target/87598
* config/rs6000/rs6000.c (print_operand_address): For unexpected RTL
call output_addr_const and hope for the best.

From-SVN: r265392

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 96f187500df8dfd7cdfefcd38dd991f74706d486..d799af2aa2a632373d849a02369cbefc70cae3a2 100644 (file)
@@ -1,3 +1,9 @@
+2018-10-22  Segher Boessenkool  <segher@kernel.crashing.org>
+
+       PR target/87598
+       * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL
+       call output_addr_const and hope for the best.
+
 2018-10-22  Richard Biener  <rguenther@suse.de>
 
        * gimple-ssa-evrp-analyze.c
index 85b05f6618cef7278c35f3df089dd5dd6cd6e681..75e30ce978448e2f5339ffca78f47c2c860fee1c 100644 (file)
@@ -21273,7 +21273,7 @@ print_operand_address (FILE *file, rtx x)
        fprintf (file, "(%s)", reg_names[REGNO (XVECEXP (tocrel_base_oac, 0, 1))]);
     }
   else
-    gcc_unreachable ();
+    output_addr_const (file, x);
 }
 \f
 /* Implement TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA.  */