Did shift of 32. Not allowed
This commit is contained in:
parent
2b7aae3b44
commit
24a353f3e1
|
@ -420,7 +420,8 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
Sign extension could occur on some machines when shifting
|
||||
the mask to the left.
|
||||
*/
|
||||
fd->fd_mask = (1 << fd->fd_width) - 1;
|
||||
if (fd->fd_width >= 8*sizeof(arith)) fd->fd_mask = -1;
|
||||
else fd->fd_mask = (1L << fd->fd_width) - 1;
|
||||
|
||||
if (options['r']) /* adjust the field at the right */
|
||||
fd->fd_shift = bits_declared - fd->fd_width;
|
||||
|
|
|
@ -456,7 +456,8 @@ add_field(szp, fd, fdtpp, idf, stp)
|
|||
Sign extension could occur on some machines when shifting
|
||||
the mask to the left.
|
||||
*/
|
||||
fd->fd_mask = (1 << fd->fd_width) - 1;
|
||||
if (fd->fd_width >= 8*sizeof(arith)) fd->fd_mask = -1;
|
||||
else fd->fd_mask = (1L << fd->fd_width) - 1;
|
||||
|
||||
if (options['r']) /* adjust the field at the right */
|
||||
fd->fd_shift = bits_declared - fd->fd_width;
|
||||
|
|
Loading…
Reference in a new issue