]> git.ipfire.org Git - thirdparty/gcc.git/commit
[PR100843] store by mult pieces: punt on max_len < min_len
authorAlexandre Oliva <oliva@adacore.com>
Wed, 15 Dec 2021 05:22:33 +0000 (02:22 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Wed, 15 Dec 2021 05:22:33 +0000 (02:22 -0300)
commitc95a9f1ee7ebd461cbced455271a993bae3a42b6
tree524fbd66d186521103aa50ca54adf346236f2e26
parent9c6586bc20ba49d6f42b889936cee0f7563a0966
[PR100843] store by mult pieces: punt on max_len < min_len

The testcase confuses the code that detects min and max len for the
memset, so max_len ends up less than min_len.  That shouldn't be
possible, but the testcase requires us to handle this case.

The store-by-mult-pieces algorithm actually relies on min and max
lengths, so if we find them to be inconsistent, the best we can do is
punting.

for  gcc/ChangeLog

PR middle-end/100843
* builtins.c (try_store_by_multiple_pieces): Fail if min_len
is greater than max_len.

for  gcc/testsuite/ChangeLog

PR middle-end/100843
* gcc.dg/pr100843.c: New.
gcc/builtins.c
gcc/testsuite/gcc.dg/pr100843.c [new file with mode: 0644]