]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR middle-end/60556 (tip of tree crash with mips compiler)
authorSteve Ellcey <sellcey@mips.com>
Fri, 11 Apr 2014 11:52:14 +0000 (11:52 +0000)
committerJakub Jelinek <jakub@gcc.gnu.org>
Fri, 11 Apr 2014 11:52:14 +0000 (13:52 +0200)
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

gcc/ChangeLog
gcc/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr60556.c [new file with mode: 0644]

index 3b2b76adca6d7f43665522d90332911ebc6ea20f..116d6c4d6cc636db6dff82f7e8ac4de21f580b5e 100644 (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
index ebf136ed5a30ff9e55b009586260e8f4f3a992e7..72e440119e433197d6a322e36afcdf1edd6db708 100644 (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++)
index ea812303c35d163ec7efe7d0ba411d7f41c6f7d4..0675d469f94564df678976ba77d0e9c89207af2b 100644 (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
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr60556.c b/gcc/testsuite/gcc.c-torture/compile/pr60556.c
new file mode 100644 (file)
index 0000000..c775432
--- /dev/null
@@ -0,0 +1,8 @@
+/* PR middle-end/60556 */
+
+int g (int);
+
+unsigned long long f (void)
+{
+ return (unsigned long long)(long)&g;
+}