diff options
author | Richard Guenther <rguenther@suse.de> | 2010-01-01 17:19:02 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-01-01 17:19:02 +0000 |
commit | e4a95933a61da64ab7b32186baa2c62312c1f623 (patch) | |
tree | e806db336512e949dfdcaf872571f7f2ca326623 /gcc/c-decl.c | |
parent | 0bdf1263df14af97c320f38a8cacc38a74fcc176 (diff) | |
download | gcc-e4a95933a61da64ab7b32186baa2c62312c1f623.zip gcc-e4a95933a61da64ab7b32186baa2c62312c1f623.tar.gz gcc-e4a95933a61da64ab7b32186baa2c62312c1f623.tar.bz2 |
re PR c/42570 (ICE in get_alias_set, at alias.c:710)
2010-01-01 Richard Guenther <rguenther@suse.de>
PR c/42570
* c-decl.c (grokdeclarator): For zero-size arrays force
structural equality checks as layout_type does.
* gcc.c-torture/execute/pr42570.c: New testcase.
From-SVN: r155557
Diffstat (limited to 'gcc/c-decl.c')
-rw-r--r-- | gcc/c-decl.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c index 0655197..a244a83 100644 --- a/gcc/c-decl.c +++ b/gcc/c-decl.c @@ -1,6 +1,6 @@ /* Process declarations and variables for C compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, - 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 + 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. This file is part of GCC. @@ -5394,6 +5394,7 @@ grokdeclarator (const struct c_declarator *declarator, gcc_assert (itype); TYPE_SIZE (type) = bitsize_zero_node; TYPE_SIZE_UNIT (type) = size_zero_node; + SET_TYPE_STRUCTURAL_EQUALITY (type); } if (array_parm_vla_unspec_p) { @@ -5401,6 +5402,7 @@ grokdeclarator (const struct c_declarator *declarator, /* The type is complete. C99 6.7.5.2p4 */ TYPE_SIZE (type) = bitsize_zero_node; TYPE_SIZE_UNIT (type) = size_zero_node; + SET_TYPE_STRUCTURAL_EQUALITY (type); } } |