On Thu, Dec 05, 2013 at 12:22:22PM +0100, Andreas Schwab wrote: > "Joseph S. Myers" <jos...@codesourcery.com> writes: > > > @@ -4994,6 +4997,22 @@ c_sizeof_or_alignof_type (location_t loc, > > value = size_binop_loc (loc, CEIL_DIV_EXPR, TYPE_SIZE_UNIT (type), > > size_int (TYPE_PRECISION (char_type_node) > > / BITS_PER_UNIT)); > > + else if (min_alignof) > > + { > > + unsigned int align = TYPE_ALIGN (type); > > + align = MIN (align, BIGGEST_ALIGNMENT); > > +#ifdef BIGGEST_FIELD_ALIGNMENT > > + align = MIN (align, BIGGEST_FIELD_ALIGNMENT); > > +#endif > > + tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE, > > + type); > > + unsigned int field_align = align; > > +#ifdef ADJUST_FIELD_ALIGN > > + field_align = ADJUST_FIELD_ALIGN (field, field_align); > > +#endif > > + align = MIN (align, field_align); > > + value = size_int (align / BITS_PER_UNIT); > > + } > > else > > value = size_int (TYPE_ALIGN_UNIT (type)); > > } > > ../../gcc/c-family/c-common.c: In function ‘tree_node* > c_sizeof_or_alignof_type(location_t, tree, bool, bool, int)’: > ../../gcc/c-family/c-common.c:5007:9: error: unused variable ‘field’ > [-Werror=unused-variable] > tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE,
The following should fix it. 2013-12-05 Marek Polacek <pola...@redhat.com> c-family/ * c-common.c (c_sizeof_or_alignof_type): Move a declaration into [ADJUST_FIELD_ALIGN]. --- gcc/c-family/c-common.c.mp2 2013-12-05 12:35:38.585732312 +0100 +++ gcc/c-family/c-common.c 2013-12-05 12:36:03.351820193 +0100 @@ -5004,10 +5004,10 @@ c_sizeof_or_alignof_type (location_t loc #ifdef BIGGEST_FIELD_ALIGNMENT align = MIN (align, BIGGEST_FIELD_ALIGNMENT); #endif - tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE, - type); unsigned int field_align = align; #ifdef ADJUST_FIELD_ALIGN + tree field = build_decl (UNKNOWN_LOCATION, FIELD_DECL, NULL_TREE, + type); field_align = ADJUST_FIELD_ALIGN (field, field_align); #endif align = MIN (align, field_align); Marek