summaryrefslogtreecommitdiff
path: root/packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch')
-rw-r--r--packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch16
1 files changed, 16 insertions, 0 deletions
diff --git a/packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch b/packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch
new file mode 100644
index 0000000000..59ecbff4f5
--- /dev/null
+++ b/packages/gcc/gcc-4.2.2/903-avr32-fix-removal-of-redundant-cast-operations.patch
@@ -0,0 +1,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;
+