diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-03-29 15:19:00 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-03-29 15:19:00 +0000 |
commit | ae1f04be453814d932e7f531f9c867dce741b974 (patch) | |
tree | 05e79911f749d33ef7696f66cfdfedbf4bf3712c /gcc/lower-subreg.c | |
parent | 4abd94105ecb1d026406648a37ff2fb43bb26d7c (diff) | |
download | gcc-ae1f04be453814d932e7f531f9c867dce741b974.tar.gz |
PR middle-end/70355
* lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234524 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lower-subreg.c')
-rw-r--r-- | gcc/lower-subreg.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c index 5432d0597c5..f7b3ac4170e 100644 --- a/gcc/lower-subreg.c +++ b/gcc/lower-subreg.c @@ -614,7 +614,8 @@ simplify_subreg_concatn (machine_mode outermode, rtx op, innermode = GET_MODE (op); gcc_assert (byte < GET_MODE_SIZE (innermode)); - gcc_assert (GET_MODE_SIZE (outermode) <= GET_MODE_SIZE (innermode)); + if (GET_MODE_SIZE (outermode) > GET_MODE_SIZE (innermode)) + return NULL_RTX; inner_size = GET_MODE_SIZE (innermode) / XVECLEN (op, 0); part = XVECEXP (op, 0, byte / inner_size); |