<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">diff --git a/external/gpl3/gcc/dist/gcc/recog.c b/external/gpl3/gcc/dist/gcc/recog.c
index 63cdc237240b..a842496785df 100644
--- a/external/gpl3/gcc/dist/gcc/recog.c
+++ b/external/gpl3/gcc/dist/gcc/recog.c
@@ -1011,8 +1011,12 @@ general_operand (rtx op, machine_mode mode)
 	 might be called from cleanup_subreg_operands.
 
 	 ??? This is a kludge.  */
-      if (!reload_completed &amp;&amp; SUBREG_BYTE (op) != 0
-	  &amp;&amp; MEM_P (sub))
+      if (!reload_completed
+          &amp;&amp; MEM_P (sub)
+          &amp;&amp; (SUBREG_BYTE (op) &gt; GET_MODE_SIZE (GET_MODE (sub))
+              || SUBREG_BYTE (op) % GET_MODE_SIZE (mode) != 0
+              )
+          )
 	return 0;
 
 #ifdef CANNOT_CHANGE_MODE_CLASS
</pre></body></html>