On Thu, Aug 18, 2011 at 4:06 PM, Jakub Jelinek <ja...@redhat.com> wrote:
> Hi!
>
> For targetm.ms_bitfield_layout_p we ICE on DECL_PACKED flexible array
> members, as they have NULL DECL_SIZE.  We shouldn't adjust anything in that
> case like we don't adjust anything for non-zero sized fields.
>
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

Ok.

Thanks,
Richard.

> 2011-08-18  Jakub Jelinek  <ja...@redhat.com>
>
>        PR target/50009
>        * stor-layout.c (update_alignment_for_field): Don't ICE on
>        packed flexible array members if ms_bitfield_layout_p.
>
>        * gcc.c-torture/compile/pr50009.c: New test.
>
> --- gcc/stor-layout.c.jj        2011-08-03 18:41:06.000000000 +0200
> +++ gcc/stor-layout.c   2011-08-18 12:17:57.000000000 +0200
> @@ -1,7 +1,7 @@
>  /* C-compiler utilities for types and variables storage layout
>    Copyright (C) 1987, 1988, 1992, 1993, 1994, 1995, 1996, 1996, 1998,
> -   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
> -   Free Software Foundation, Inc.
> +   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
> +   2011 Free Software Foundation, Inc.
>
>  This file is part of GCC.
>
> @@ -935,7 +935,8 @@ update_alignment_for_field (record_layou
>         applies if there was an immediately prior, nonzero-size
>         bitfield.  (That's the way it is, experimentally.) */
>       if ((!is_bitfield && !DECL_PACKED (field))
> -         || (!integer_zerop (DECL_SIZE (field))
> +         || ((DECL_SIZE (field) == NULL_TREE
> +              || !integer_zerop (DECL_SIZE (field)))
>              ? !DECL_PACKED (field)
>              : (rli->prev_field
>                 && DECL_BIT_FIELD_TYPE (rli->prev_field)
> --- gcc/testsuite/gcc.c-torture/compile/pr50009.c.jj    2011-08-18 
> 12:19:43.000000000 +0200
> +++ gcc/testsuite/gcc.c-torture/compile/pr50009.c       2011-08-18 
> 12:19:21.000000000 +0200
> @@ -0,0 +1,6 @@
> +/* PR target/50009 */
> +
> +struct S {
> +  short a;
> +  short b[];
> +} __attribute__((packed));
>
>        Jakub
>

Reply via email to