[PR82096] Fix ICE in int_mode_for_mode with arm-linux-gnueabi
authorSudakshina Das <sudi.das@arm.com>
Thu, 11 Jan 2018 10:46:59 +0000 (10:46 +0000)
committerSudakshina Das <sudi@gcc.gnu.org>
Thu, 11 Jan 2018 10:46:59 +0000 (10:46 +0000)
commitf8f77d4d0028e99035a48626c6e53ebbe2448798
treea7edf0de0080b6461ea0a4b6a5a37f3aea77a792
parent69a350853900f6b6f9775deb95efff942020a55f
[PR82096] Fix ICE in int_mode_for_mode with arm-linux-gnueabi

The bug reported a particular test di-longlong64-sync-1.c failing when run
on arm-linux-gnueabi with options -mthumb -march=armv5t -O[g,1,2,3] and
-mthumb -march=armv6 -O[g,1,2,3].

The crash was caused because of the explicit VOIDmode argument that is sent
to emit_store_flag_force () and that the emit_store_flag_force () was not
handling the VOIDmode adequately. This patch fixes that.

ChangeLog entries:

*** gcc/ChangeLog ***

2017-01-11  Sudakshina Das  <sudi.das@arm.com>

PR target/82096
* expmed.c (emit_store_flag_force): Swap if const op0
and change VOIDmode to mode of op0.

*** gcc/testsuite/ChangeLog ***

2017-01-11  Sudakshina Das  <sudi.das@arm.com>

PR target/82096
* gcc.c-torture/compile/pr82096.c: New test.

From-SVN: r256526
gcc/ChangeLog
gcc/expmed.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr82096.c [new file with mode: 0644]