The Ada compiler needs to promote the alignment of packed records if this is deemed profitable, for example package P is type R1 is record I : Integer; end record; pragma Pack (R1); end P; in order to avoid creating superfluous temporaries around function calls. Fixed thusly, tested on i586-suse-linux, applied on the mainline. 2008-03-08 Eric Botcazou * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently aligned bit-fields, bumping the alignment of the record type if deemed profitable. (value_factor_p): Return false instead of 0. 2008-03-08 Eric Botcazou * gnat.dg/pack4.adb: New test. -- Eric Botcazou