This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Your change to expr.c breaks gcc.c-torture/execute/950511-1.c


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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]