diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e84b39f54ba..9b20061921e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-06-03 Roger Sayle + + * varasm.c (force_const_mem): Handle alignment of constants not + representable as a type in the front-end language. + 2003-06-03 Kazu Hirata * flow.c (initialize_uninitialized_subregs): Use diff --git a/gcc/varasm.c b/gcc/varasm.c index cf2722cf2e8..fec16d53196 100644 --- a/gcc/varasm.c +++ b/gcc/varasm.c @@ -3061,8 +3061,11 @@ force_const_mem (mode, x) /* Align the location counter as required by EXP's data type. */ align = GET_MODE_ALIGNMENT (mode == VOIDmode ? word_mode : mode); #ifdef CONSTANT_ALIGNMENT - align = CONSTANT_ALIGNMENT (make_tree ((*lang_hooks.types.type_for_mode) - (mode, 0), x), align); + { + tree type = (*lang_hooks.types.type_for_mode) (mode, 0); + if (type != NULL_TREE) + align = CONSTANT_ALIGNMENT (make_tree (type, x), align); + } #endif pool_offset += (align / BITS_PER_UNIT) - 1;