re PR target/50009 (Segmentation fault in tree_nop_conversion)

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.

From-SVN: r177860
This commit is contained in:
Jakub Jelinek 2011-08-18 16:29:10 +02:00 committed by Jakub Jelinek
parent 2a63286d36
commit f44157f84b
4 changed files with 17 additions and 3 deletions

View File

@ -1,5 +1,9 @@
2011-08-18 Jakub Jelinek <jakub@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.
PR target/50092
* config/i386/i386.c (assign_386_stack_local): Call validize_mem
on the result before returning it.

View File

@ -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_layout_info rli, tree field,
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)

View File

@ -1,5 +1,8 @@
2011-08-18 Jakub Jelinek <jakub@redhat.com>
PR target/50009
* gcc.c-torture/compile/pr50009.c: New test.
PR target/50092
* gcc.dg/torture/pr50092.c: New test.

View File

@ -0,0 +1,6 @@
/* PR target/50009 */
struct S {
short a;
short b[];
} __attribute__((packed));