[46/77] Make widest_int_mode_for_size return a scalar_int_mode
authorRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 30 Aug 2017 11:16:12 +0000 (11:16 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 30 Aug 2017 11:16:12 +0000 (11:16 +0000)
commitb4e6c85e3cfdd4e0863277c09461e3709c42981d
tree36e125ef1d10edd5a08c6baa37321e666ff1ffae
parent646b5f37031fbb22bc4d2c2ae8127e1aa722c4d3
[46/77] Make widest_int_mode_for_size return a scalar_int_mode

The comment for widest_int_mode said that it returns "the widest integer
mode no wider than SIZE", but it actually returns the widest integer
mode that is narrower than SIZE.  In practice SIZE is always greater
than 1, so it can always pick QImode in the worst case.  The VOIDmode
paths seem to be dead.

gcc/
2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood  <david.sherwood@arm.com>

* expr.c (widest_int_mode_for_size): Make the comment match the code.
Return a scalar_int_mode and assert that the size is greater than
one byte.
(by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
(op_by_pieces_d::op_by_pieces_d): Likewise.
(op_by_pieces_d::run): Likewise.
(can_store_by_pieces): Likewise.

From-SVN: r251498
gcc/expr.c