+2005-08-23 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR middle-end/23467
+ * stor-layout.c (finalize_type_size): Dont override
+ existing alignment with a smaller alignment from the mode.
+
2005-08-23 Sebastian Pop <pop@cri.ensmp.fr>
* lambda-code.c (lambda_vector_lexico_pos): Moved...
&& TREE_CODE (type) != QUAL_UNION_TYPE
&& TREE_CODE (type) != ARRAY_TYPE)))
{
- TYPE_ALIGN (type) = GET_MODE_ALIGNMENT (TYPE_MODE (type));
- TYPE_USER_ALIGN (type) = 0;
+ unsigned mode_align = GET_MODE_ALIGNMENT (TYPE_MODE (type));
+
+ /* Don't override a larger alignment requirement coming from a user
+ alignment of one of the fields. */
+ if (mode_align >= TYPE_ALIGN (type))
+ {
+ TYPE_ALIGN (type) = mode_align;
+ TYPE_USER_ALIGN (type) = 0;
+ }
}
/* Do machine-dependent extra alignment. */
+2005-08-23 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR middle-end/23467
+ * gcc.c-torture/execute/pr23467.c: New test.
+
2005-08-23 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/22043