Mercurial > hg > CbC > CbC_gcc
diff gcc/ada/gcc-interface/utils2.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/ada/gcc-interface/utils2.c Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/ada/gcc-interface/utils2.c Thu Oct 25 07:37:49 2018 +0900 @@ -1439,8 +1439,8 @@ the offset to the field. Otherwise, do this the normal way. */ if (op_code == ATTR_ADDR_EXPR) { - HOST_WIDE_INT bitsize; - HOST_WIDE_INT bitpos; + poly_int64 bitsize; + poly_int64 bitpos; tree offset, inner; machine_mode mode; int unsignedp, reversep, volatilep; @@ -1460,8 +1460,9 @@ if (!offset) offset = size_zero_node; - offset = size_binop (PLUS_EXPR, offset, - size_int (bitpos / BITS_PER_UNIT)); + offset + = size_binop (PLUS_EXPR, offset, + size_int (bits_to_bytes_round_down (bitpos))); /* Take the address of INNER, convert it to a pointer to our type and add the offset. */