[46/77] Make widest_int_mode_for_size return a scalar_int_mode
commit45f6853297871442b8a51ca06136ac3879fc49ed
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Aug 2017 11:16:12 +0000 (30 11:16 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Aug 2017 11:16:12 +0000 (30 11:16 +0000)
tree36e125ef1d10edd5a08c6baa37321e666ff1ffae
parent3dae54b308bcc6fac66eb94f427ac9b6b5fd1111
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251498 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/expr.c