This is the mail archive of the gcc-patches@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]
Other format: [Raw text]

fix 8451


The following patch fixes the bug:

http://gcc.gnu.org/ml/gcc-patches/2002-04/msg01546.html

Richard said it was ok to back port it to 3.2.

Committed to 3.2 branch.

2002-11-04  Aldy Hernandez  <aldyh@redhat.com>
	
	Backport patch to fix PR c/8451.

	2002-04-25  Richard Henderson  <rth@redhat.com>

        * expmed.c (extract_bit_field): Fall through to generic code rather
        than aborting on subreg special case.

Index: expmed.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/expmed.c,v
retrieving revision 1.108.2.5
diff -c -p -r1.108.2.5 expmed.c
*** expmed.c	24 Jun 2002 16:50:42 -0000	1.108.2.5
--- expmed.c	4 Nov 2002 18:36:43 -0000
*************** extract_bit_field (str_rtx, bitsize, bit
*** 1144,1150 ****
  		/* Else we've got some float mode source being extracted into
  		   a different float mode destination -- this combination of
  		   subregs results in Severe Tire Damage.  */
! 		abort ();
  	    }
  	  if (GET_CODE (op0) == REG)
  	    op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
--- 1144,1150 ----
  		/* Else we've got some float mode source being extracted into
  		   a different float mode destination -- this combination of
  		   subregs results in Severe Tire Damage.  */
! 		goto no_subreg_mode_swap;
  	    }
  	  if (GET_CODE (op0) == REG)
  	    op0 = gen_rtx_SUBREG (mode1, op0, byte_offset);
*************** extract_bit_field (str_rtx, bitsize, bit
*** 1155,1160 ****
--- 1155,1161 ----
  	return convert_to_mode (tmode, op0, unsignedp);
        return op0;
      }
+  no_subreg_mode_swap:
  
    /* Handle fields bigger than a word.  */
  


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