aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-05-15 16:11:06 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1993-05-15 16:11:06 -0400
commit4be204f02d0cd7666f2a39219f899a5f7573275d (patch)
tree65bf249fb52b823259c2bf3e720205b4d0859d35
parentb45863ecee4523fcb7822702eba1bed616e45563 (diff)
downloadgcc-4be204f02d0cd7666f2a39219f899a5f7573275d.zip
gcc-4be204f02d0cd7666f2a39219f899a5f7573275d.tar.gz
gcc-4be204f02d0cd7666f2a39219f899a5f7573275d.tar.bz2
(expand_assignment): Fix error in last change.
From-SVN: r4476
-rw-r--r--gcc/expr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index c97e4c7..a382737 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -1,5 +1,5 @@
/* Convert tree expression to rtl instructions, for GNU compiler.
- Copyright (C) 1988, 1992 Free Software Foundation, Inc.
+ Copyright (C) 1988, 1992, 1993 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -2197,8 +2197,12 @@ expand_assignment (to, from, want_value, suggest_reg)
preserve_temp_slots (result);
free_temp_slots ();
- return convert_to_mode (TYPE_MODE (TREE_TYPE (to)), result,
- TREE_UNSIGNED (TREE_TYPE (to)));
+ /* If we aren't returning a result, just pass on what expand_expr
+ returned; it was probably const0_rtx. Otherwise, convert RESULT
+ to the proper mode. */
+ return (want_value ? convert_to_mode (TYPE_MODE (TREE_TYPE (to)), result,
+ TREE_UNSIGNED (TREE_TYPE (to)))
+ : result);
}
/* Ordinary treatment. Expand TO to get a REG or MEM rtx.