summaryrefslogtreecommitdiff
path: root/toolchain/gcc/ext_source/Atmel/avr32/4.2.2-avr32-2.1.5/903-avr32-fix-removal-of-redundant-cast-operations.patch
blob: 59ecbff4f5ab635ac4af2e4ae471188394b2404f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Index: trunk/gcc/config/avr32/avr32.c
===================================================================
--- trunk/gcc/config/avr32/avr32.c	(revision 43495)
+++ trunk/gcc/config/avr32/avr32.c	(revision 43496)
@@ -6499,6 +6499,11 @@
 		    break;
 		}
 
+              /* Check if we have a call and the register is used as an argument. */
+              if (CALL_P (scan)
+                  && find_reg_fusage (scan, USE, reg) )
+                break;
+
 	      if (!reg_mentioned_p (reg, PATTERN (scan)))
 		continue;