]>
Commit | Line | Data |
---|---|---|
1f0f162c PS |
1 | --- gcc-4_1-branch/gcc/config/i386/i386.c.orig 2006-12-01 14:53:49.723600000 +0100 |
2 | +++ gcc-4_1-branch/gcc/config/i386/i386.c 2006-12-01 14:54:46.239132000 +0100 | |
3 | @@ -2625,32 +2625,6 @@ classify_argument (enum machine_mode mod | |
514e49e5 | 4 | switch (TREE_CODE (type)) |
5 | { | |
6 | case RECORD_TYPE: | |
7 | - /* For classes first merge in the field of the subclasses. */ | |
8 | - if (TYPE_BINFO (type)) | |
9 | - { | |
10 | - tree binfo, base_binfo; | |
11 | - int basenum; | |
12 | - | |
13 | - for (binfo = TYPE_BINFO (type), basenum = 0; | |
14 | - BINFO_BASE_ITERATE (binfo, basenum, base_binfo); basenum++) | |
15 | - { | |
16 | - int num; | |
17 | - int offset = tree_low_cst (BINFO_OFFSET (base_binfo), 0) * 8; | |
18 | - tree type = BINFO_TYPE (base_binfo); | |
19 | - | |
20 | - num = classify_argument (TYPE_MODE (type), | |
21 | - type, subclasses, | |
22 | - (offset + bit_offset) % 256); | |
23 | - if (!num) | |
24 | - return 0; | |
25 | - for (i = 0; i < num; i++) | |
26 | - { | |
27 | - int pos = (offset + (bit_offset % 64)) / 8 / 8; | |
28 | - classes[i + pos] = | |
29 | - merge_classes (subclasses[i], classes[i + pos]); | |
30 | - } | |
31 | - } | |
32 | - } | |
33 | /* And now merge the fields of structure. */ | |
34 | for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) | |
35 | { | |
1f0f162c | 36 | @@ -2718,10 +2692,6 @@ classify_argument (enum machine_mode mod |
514e49e5 | 37 | case QUAL_UNION_TYPE: |
38 | /* Unions are similar to RECORD_TYPE but offset is always 0. | |
39 | */ | |
40 | - | |
41 | - /* Unions are not derived. */ | |
42 | - gcc_assert (!TYPE_BINFO (type) | |
43 | - || !BINFO_N_BASE_BINFOS (TYPE_BINFO (type))); | |
44 | for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) | |
45 | { | |
46 | if (TREE_CODE (field) == FIELD_DECL) | |
1f0f162c | 47 | @@ -3401,18 +3371,7 @@ contains_128bit_aligned_vector_p (tree t |
514e49e5 | 48 | { |
49 | tree field; | |
1f0f162c | 50 | |
514e49e5 | 51 | - if (TYPE_BINFO (type)) |
52 | - { | |
53 | - tree binfo, base_binfo; | |
54 | - int i; | |
1f0f162c | 55 | - |
514e49e5 | 56 | - for (binfo = TYPE_BINFO (type), i = 0; |
57 | - BINFO_BASE_ITERATE (binfo, i, base_binfo); i++) | |
58 | - if (contains_128bit_aligned_vector_p | |
59 | - (BINFO_TYPE (base_binfo))) | |
60 | - return true; | |
61 | - } | |
62 | - /* And now merge the fields of structure. */ | |
63 | + /* Walk all the structure fields. */ | |
64 | for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) | |
65 | { | |
66 | if (TREE_CODE (field) == FIELD_DECL |