Commit 8f34bde6 by Ian Lance Taylor Committed by Dale Johannesen

combine.c (make_extraction): Avoid reference outside object.

2005-08-26  Ian Lance Taylor  <ian@airs.com>

        * combine.c (make_extraction): Avoid reference outside object.

From-SVN: r103537
parent 277d42e2
2005-08-26 Ian Lance Taylor <ian@airs.com>
* combine.c (make_extraction): Avoid reference outside object.
2005-08-26 J"orn Rennecke <joern.rennecke@st.com>
* stor-layout.c (finalize_type_size): Restore behaviour for
......
......@@ -6484,11 +6484,13 @@ make_extraction (enum machine_mode mode, rtx inner, HOST_WIDE_INT pos,
&& GET_MODE_SIZE (inner_mode) < GET_MODE_SIZE (is_mode))
offset -= GET_MODE_SIZE (is_mode) - GET_MODE_SIZE (inner_mode);
/* If this is a constant position, we can move to the desired byte. */
/* If this is a constant position, we can move to the desired byte.
Be careful not to go beyond the original object. */
if (pos_rtx == 0)
{
offset += pos / BITS_PER_UNIT;
pos %= GET_MODE_BITSIZE (wanted_inner_mode);
enum machine_mode bfmode = smallest_mode_for_size (len, MODE_INT);
offset += pos / GET_MODE_BITSIZE (bfmode);
pos %= GET_MODE_BITSIZE (bfmode);
}
if (BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment