diff options
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch')
-rw-r--r-- | meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch b/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch new file mode 100644 index 000000000..8eb35325e --- /dev/null +++ b/meta-oe/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99453.patch | |||
@@ -0,0 +1,72 @@ | |||
1 | 2010-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 | |||