re PR middle-end/60556 (tip of tree crash with mips compiler)

PR middle-end/60556
	* expr.c (convert_move): Use emit_store_flag_force instead of
	emit_store_flag.  Pass lowpart_mode instead of VOIDmode as 5th
	argument to it.

	* gcc.c-torture/compile/pr60556.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r209300
This commit is contained in:
Steve Ellcey 2014-04-11 11:52:14 +00:00 committed by Jakub Jelinek
parent 8330537b5b
commit 3662b2774c
4 changed files with 25 additions and 3 deletions

View File

@ -1,3 +1,11 @@
2014-04-11 Steve Ellcey <sellcey@mips.com>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/60556
* expr.c (convert_move): Use emit_store_flag_force instead of
emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th
argument to it.
2014-04-11 Richard Biener <rguenther@suse.de>
PR middle-end/60797

View File

@ -551,9 +551,9 @@ convert_move (rtx to, rtx from, int unsignedp)
if (unsignedp)
fill_value = const0_rtx;
else
fill_value = emit_store_flag (gen_reg_rtx (word_mode),
LT, lowfrom, const0_rtx,
VOIDmode, 0, -1);
fill_value = emit_store_flag_force (gen_reg_rtx (word_mode),
LT, lowfrom, const0_rtx,
lowpart_mode, 0, -1);
/* Fill the remaining words. */
for (i = GET_MODE_SIZE (lowpart_mode) / UNITS_PER_WORD; i < nwords; i++)

View File

@ -1,3 +1,9 @@
2014-04-11 Steve Ellcey <sellcey@mips.com>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/60556
* gcc.c-torture/compile/pr60556.c: New test.
2014-04-11 Richard Biener <rguenther@suse.de>
PR middle-end/60797

View File

@ -0,0 +1,8 @@
/* PR middle-end/60556 */
int g (int);
unsigned long long f (void)
{
return (unsigned long long)(long)&g;
}