diff options
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 18223a89f4a..46d9e8a1ede 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -5685,8 +5685,11 @@ simplify_subreg (enum machine_mode outermode, rtx op, gcc_assert (GET_MODE (op) == innermode || GET_MODE (op) == VOIDmode); - gcc_assert ((byte % GET_MODE_SIZE (outermode)) == 0); - gcc_assert (byte < GET_MODE_SIZE (innermode)); + if ((byte % GET_MODE_SIZE (outermode)) != 0) + return NULL_RTX; + + if (byte >= GET_MODE_SIZE (innermode)) + return NULL_RTX; if (outermode == innermode && !byte) return op; |