OSDN Git Service

* simplify-rtx.c (simplify_subreg): Avoid creating of incorrect subregs.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 May 2001 17:40:48 +0000 (17:40 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 17 May 2001 17:40:48 +0000 (17:40 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42212 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c

index b256242..4087617 100644 (file)
@@ -1,3 +1,7 @@
+Thu May 17 19:40:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * simplify-rtx.c  (simplify_subreg): Avoid creating of incorrect subregs.
+
 2001-05-17  Bernd Schmidt  <bernds@redhat.com>
 
        * expr.c (protect_from_queue): Protect against subsequent calls to
index 44cfc3b..fd1b630 100644 (file)
@@ -2331,6 +2331,10 @@ simplify_subreg (outermode, op, innermode, byte)
                               % UNITS_PER_WORD));
        }
 
+      /* Bail out in case resulting subreg would be incorrect.  */
+      if (final_offset % GET_MODE_SIZE (outermode)
+         || final_offset >= GET_MODE_SIZE (innermostmode))
+       return NULL;
       /* Recurse for futher possible simplifications.  */
       new = simplify_subreg (outermode, SUBREG_REG (op),
                             GET_MODE (SUBREG_REG (op)),