integreate.c fix

Jan Hubicka jh@suse.cz
Wed Dec 13 11:19:00 GMT 2000


Hi
integrate copies ASM_OPERAND using weird way to ensure sharing forgetting to
copy it's mode producing incorrect RTX as an output.


Wed Dec 13 20:18:03 MET 2000  Jan Hubicka  <jh@suse.cz>
	* integrate.c (copy_rtx_and_substitute): Copy mode too.
Index: egcs/gcc/integrate.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/integrate.c,v
retrieving revision 1.121
diff -c -3 -p -r1.121 integrate.c
*** integrate.c	2000/11/30 06:31:17	1.121
--- integrate.c	2000/12/13 19:15:50
*************** copy_rtx_and_substitute (orig, map, for_
*** 2070,2075 ****
--- 2070,2076 ----
  	{
  	  copy = rtx_alloc (ASM_OPERANDS);
  	  copy->volatil = orig->volatil;
+ 	  PUT_MODE (copy, GET_MODE (orig));
  	  ASM_OPERANDS_TEMPLATE (copy) = ASM_OPERANDS_TEMPLATE (orig);
  	  ASM_OPERANDS_OUTPUT_CONSTRAINT (copy)
  	    = ASM_OPERANDS_OUTPUT_CONSTRAINT (orig);


More information about the Gcc-patches mailing list