gen_exp had code to handle the 'L' operand format.  But this format
is specifically for location_ts, which are only used in RTX_INSNs.
Those should never occur in this context, where the input is always
an md file rather than an __RTL function.  Any hard-coded raw
location value would be meaningless anyway.

It seemed safer to turn this into an error rather than a gcc_unreachable.

gcc/
        * genemit.cc (generator::gen_exp): Raise an error if we see
        an 'L' operand.
---
 gcc/genemit.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/genemit.cc b/gcc/genemit.cc
index a7e49a24506..3636a555aad 100644
--- a/gcc/genemit.cc
+++ b/gcc/genemit.cc
@@ -270,7 +270,8 @@ generator::gen_exp (rtx x)
          break;
 
        case 'L':
-         fprintf (file, "%llu", (unsigned long long) XLOC (x, i));
+         fatal_at (info.loc, "'%s' rtxes are not supported in this context",
+                   GET_RTX_NAME (code));
          break;
 
        case 'r':
-- 
2.43.0

Reply via email to