This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Your change to expr.c breaks gcc.c-torture/execute/950511-1.c
- To: rth at cygnus dot com
- Subject: Your change to expr.c breaks gcc.c-torture/execute/950511-1.c
- From: hjl at lucon dot org (H.J. Lu)
- Date: Tue, 2 Jun 1998 15:13:44 -0700 (PDT)
- Cc: law at cygnus dot com, egcs at cygnus dot com
Hi, Richard,
I have to revert the part of your change to expr.c:
1998-05-23 Richard Henderson <rth@cygnus.com>
* expr.c (expand_expr): For {BITFIELD,COMPONENT,ARRAY}_REF, if the
offset's mode is not ptr_mode, convert it.
to fix gcc.c-torture/execute/950511-1.c on x86. Basically, your change
turns
(const_int -3)
into
(const_double (const_int 0) -3 0 43))
It doesn't make much senses to me. The patch below seems to fix it.
Thanks.
--
H.J. Lu (hjl@gnu.org)
---
Index: expr.c
===================================================================
RCS file: /home/work/cvs/gnu/egcs/gcc/expr.c,v
retrieving revision 1.1.1.37
diff -u -r1.1.1.37 expr.c
--- expr.c 1998/05/25 00:16:23 1.1.1.37
+++ expr.c 1998/06/02 22:04:37
@@ -3317,7 +3317,7 @@
{
target = protect_from_queue (target, 1);
if (GET_MODE (temp) != GET_MODE (target)
- && GET_MODE (target) != VOIDmode)
+ && GET_MODE (temp) != VOIDmode)
{
int unsignedp = TREE_UNSIGNED (TREE_TYPE (exp));
if (dont_return_target)