> gcc/ > * cppbuiltin.c (define_builtin_macros_for_type_sizes): Round > pointer size up to a power of two. > * defaults.h (DWARF2_ADDR_SIZE): Round up. > (POINTER_SIZE_UNITS): New, rounded up value. > * dwarf2asm.c (size_of_encoded_value): Use it. > (dw2_output_indirect_constant_1): Likewise. > * expmed.c (init_expmed_one_conv): We now know the sizes of > partial int modes. > * loop-iv.c (iv_number_of_iterations): Use precision, not size. > * optabs.c (expand_float): Use precision, not size. > (expand_fix): Likewise. > * simplify-rtx (simplify_unary_operation_1): Likewise. > * tree-dfa.c (get_ref_base_and_extent): Likewise. > * varasm.c (assemble_addr_to_section): Round up pointer sizes. > (default_assemble_integer) Likewise. > (dump_tm_clone_pairs): Likewise. > * tree-core.c: Adjust comment.
No stor-layout.c listed here but... > Index: gcc/stor-layout.c > =================================================================== > --- gcc/stor-layout.c (revision 211858) > +++ gcc/stor-layout.c (working copy) > @@ -2123,13 +2142,13 @@ layout_type (tree type) > > case BOOLEAN_TYPE: > case INTEGER_TYPE: > case ENUMERAL_TYPE: > SET_TYPE_MODE (type, > smallest_mode_for_size (TYPE_PRECISION (type), MODE_INT)); > - TYPE_SIZE (type) = bitsize_int (GET_MODE_BITSIZE (TYPE_MODE (type))); > + TYPE_SIZE (type) = bitsize_int (GET_MODE_PRECISION (TYPE_MODE > (type))); TYPE_SIZE_UNIT (type) = size_int (GET_MODE_SIZE (TYPE_MODE > (type))); break; This doesn't look correct, you might end up with types smaller than their modes and breaking the TYPE_SIZE/TYPE_SIZE_UNIT relationship. > @@ -2516,16 +2535,33 @@ initialize_sizetypes (void) > precision = LONG_TYPE_SIZE; > else if (strcmp (SIZETYPE, "long long unsigned int") == 0) > precision = LONG_LONG_TYPE_SIZE; > else if (strcmp (SIZETYPE, "short unsigned int") == 0) > precision = SHORT_TYPE_SIZE; > else > gcc_unreachable (); > > bprecision > - = MIN (precision + BITS_PER_UNIT_LOG + 1, MAX_FIXED_MODE_SIZE); > + = MIN (precision, MAX_FIXED_MODE_SIZE); > bprecision > = GET_MODE_PRECISION (smallest_mode_for_size (bprecision, MODE_INT)); > if (bprecision > HOST_BITS_PER_DOUBLE_INT) > bprecision = HOST_BITS_PER_DOUBLE_INT; > > /* Create stubs for sizetype and bitsizetype so we can create constants. Why are you reducing the precision here? -- Eric Botcazou