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
This commit is contained in:
Richard Guenther 2010-01-01 17:19:02 +00:00 committed by Richard Biener
parent 0bdf1263df
commit e4a95933a6
4 changed files with 23 additions and 1 deletions

View file

@ -1,3 +1,9 @@
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.
2010-01-01 H.J. Lu <hongjiu.lu@intel.com>
* builtins.c: Update copyright to 2010.

View file

@ -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);
}
}

View file

@ -1,3 +1,8 @@
2010-01-01 Richard Guenther <rguenther@suse.de>
PR c/42570
* gcc.c-torture/execute/pr42570.c: New testcase.
2010-01-01 Richard Guenther <rguenther@suse.de>
PR middle-end/42559

View file

@ -0,0 +1,9 @@
typedef unsigned char uint8_t;
uint8_t foo[1][0];
extern void abort (void);
int main()
{
if (sizeof (foo) != 0)
abort ();
return 0;
}