summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch')
-rw-r--r--recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch72
1 files changed, 72 insertions, 0 deletions
diff --git a/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch
new file mode 100644
index 000000000..8eb35325e
--- /dev/null
+++ b/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch
@@ -0,0 +1,72 @@
12010-12-17 Bernd Schmidt <bernds@codesourcery.com>
2
3 Issue #10208
4
5 gcc/
6 * config/arm/arm.c (arm_select_cc_mode): Before calling
7 arm_select_dominance_cc_mode for AND or IOR operations, ensure
8 that op is NE or EQ.
9
10 gcc/testsuite/
11 * gcc.c-torture/compile/20101217-1.c: New test.
12
13=== modified file 'gcc/config/arm/arm.c'
14--- old/gcc/config/arm/arm.c 2010-12-21 14:13:38 +0000
15+++ new/gcc/config/arm/arm.c 2011-01-05 11:32:50 +0000
16@@ -10609,12 +10609,14 @@
17
18 /* Alternate canonicalizations of the above. These are somewhat cleaner. */
19 if (GET_CODE (x) == AND
20+ && (op == EQ || op == NE)
21 && COMPARISON_P (XEXP (x, 0))
22 && COMPARISON_P (XEXP (x, 1)))
23 return arm_select_dominance_cc_mode (XEXP (x, 0), XEXP (x, 1),
24 DOM_CC_X_AND_Y);
25
26 if (GET_CODE (x) == IOR
27+ && (op == EQ || op == NE)
28 && COMPARISON_P (XEXP (x, 0))
29 && COMPARISON_P (XEXP (x, 1)))
30 return arm_select_dominance_cc_mode (XEXP (x, 0), XEXP (x, 1),
31
32=== added file 'gcc/testsuite/gcc.c-torture/compile/20101217-1.c'
33--- old/gcc/testsuite/gcc.c-torture/compile/20101217-1.c 1970-01-01 00:00:00 +0000
34+++ new/gcc/testsuite/gcc.c-torture/compile/20101217-1.c 2011-01-05 11:32:50 +0000
35@@ -0,0 +1,36 @@
36+/* Testcase provided by HUAWEI. */
37+#include <stdio.h>
38+int main()
39+{
40+ int cur_k;
41+ int cur_j=0;
42+ int cur_i=28;
43+ unsigned char temp_data[8];
44+ unsigned int Data_Size=20;
45+
46+ for (cur_k=0;cur_j<7;cur_j++,cur_i++) {
47+ if (cur_j%2==0) {
48+ temp_data[cur_k++]=0;
49+ }
50+ if (cur_k==7) {
51+ for (;cur_k>0;cur_k--) {
52+ if (cur_k>2) {
53+ if ((temp_data[7-cur_k]=='n' || temp_data[7-cur_k]=='N' ) && (temp_data[7-cur_k+1]=='a' || temp_data[7-cur_k+1]=='A' )) {
54+ break;
55+ }
56+ }
57+ if (cur_k==1) {
58+ if (temp_data[7-cur_k]=='n' || temp_data[7-cur_k]=='N' ) {
59+ break;
60+ }
61+ }
62+ }
63+ if (cur_k==7) {
64+ } else {
65+ if (cur_k>0)
66+ printf("dfjk");
67+ }
68+ }
69+ }
70+return 0;
71+}
72