hi
Applied Waldek's gcc patch for an older gcc. Got these rejects:
dbxout.c.rej *************** *** 1916,1922 **** { stabstr_S ("@s"); stabstr_D (BITS_PER_UNIT * int_size_in_bytes (type)); - stabstr_S (";-20;"); } else { --- 1916,1922 ---- { stabstr_S ("@s"); stabstr_D (BITS_PER_UNIT * int_size_in_bytes (type)); + stabstr_S (";-20"); } else {
gimplify.c.rej *************** *** 4948,4953 ****
case POINTER_TYPE: case REFERENCE_TYPE: gimplify_type_sizes (TREE_TYPE (type), list_p); break;
--- 4952,4959 ----
case POINTER_TYPE: case REFERENCE_TYPE: + break; + gimplify_type_sizes (TREE_TYPE (type), list_p); break;
tree-flow-inline.h.rej *************** *** 1470,1476 **** return false;
return (AGGREGATE_TYPE_P (TREE_TYPE (v)) && - TREE_CODE (TREE_TYPE (v)) != ARRAY_TYPE); }
--- 1470,1477 ---- return false;
return (AGGREGATE_TYPE_P (TREE_TYPE (v)) && + TREE_CODE (TREE_TYPE (v)) != ARRAY_TYPE + && TREE_CODE (TREE_TYPE (v)) != SET_TYPE); }
varasm.c.rej *************** *** 2725,2731 **** VEC(constructor_elt, gc) *v; unsigned HOST_WIDE_INT idx; tree purpose, value; - v = VEC_alloc(constructor_elt, gc, VEC_length(constructor_elt, CONSTRUCTOR_ELTS (exp))); FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (exp), idx, purpose, value) --- 2725,2731 ---- VEC(constructor_elt, gc) *v; unsigned HOST_WIDE_INT idx; tree purpose, value; + v = VEC_alloc(constructor_elt, gc, VEC_length(constructor_elt, CONSTRUCTOR_ELTS (exp))); FOR_EACH_CONSTRUCTOR_ELT (CONSTRUCTOR_ELTS (exp), idx, purpose, value) *************** *** 3765,3771 **** /* Allow conversions to struct or union types if the value inside is okay. */ if (TREE_CODE (dest_type) == RECORD_TYPE - || TREE_CODE (dest_type) == UNION_TYPE) return initializer_constant_valid_p (src, endtype); } break; --- 3765,3776 ---- /* Allow conversions to struct or union types if the value inside is okay. */ if (TREE_CODE (dest_type) == RECORD_TYPE + || TREE_CODE (dest_type) == UNION_TYPE + #ifdef GPC + || TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE + #endif + ) + return initializer_constant_valid_p (src, endtype); } break;
However, for that last one was able to find where the patch belongs, so here's a diff:
3843c3843,3847 < || TREE_CODE (dest_type) == UNION_TYPE) ---
|| TREE_CODE (dest_type) == UNION_TYPE
#ifdef GPC || TREE_CODE (TREE_TYPE (value)) == ARRAY_TYPE #endif )
4017c4021 < ---
Wasn't sure how to correct the other rejects, so at least I got this far:
*** glibc detected *** corrupted double-linked list: 0x08aa5f50 *** ../../gcc-4.2.0/gcc/tree-ssa-loop-ivopts.c In function 'find_optimal_iv_set': ../../gcc-4.2.0/gcc/tree-ssa-loop-ivopts.c: 5271 internal complier error: aborted
Hope this helps Russ