From: Steve Ellcey Date: Fri, 11 Apr 2014 11:52:14 +0000 (+0000) Subject: re PR middle-end/60556 (tip of tree crash with mips compiler) X-Git-Tag: basepoints/gcc-5~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3662b2774c8124ca34489c9350a1b4dbc3f0f0be;p=thirdparty%2Fgcc.git 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 From-SVN: r209300 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3b2b76adca6d..116d6c4d6cc6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2014-04-11 Steve Ellcey + Jakub Jelinek + + 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 PR middle-end/60797 diff --git a/gcc/expr.c b/gcc/expr.c index ebf136ed5a30..72e440119e43 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -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++) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ea812303c35d..0675d469f945 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2014-04-11 Steve Ellcey + Jakub Jelinek + + PR middle-end/60556 + * gcc.c-torture/compile/pr60556.c: New test. + 2014-04-11 Richard Biener PR middle-end/60797 diff --git a/gcc/testsuite/gcc.c-torture/compile/pr60556.c b/gcc/testsuite/gcc.c-torture/compile/pr60556.c new file mode 100644 index 000000000000..c775432f8bb0 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr60556.c @@ -0,0 +1,8 @@ +/* PR middle-end/60556 */ + +int g (int); + +unsigned long long f (void) +{ + return (unsigned long long)(long)&g; +}