* config/i386/i386.c (classify_argument): Skip fields with invalid
types in unions.
* gcc.dg/union-3.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114494
138bc75d-0d04-0410-961f-
82ee72b054a4
+2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR target/27421
+ * config/i386/i386.c (classify_argument): Skip fields with invalid
+ types in unions.
+
2006-06-08 Steven Bosscher <steven@gcc.gnu.org>
* cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
if (TREE_CODE (field) == FIELD_DECL)
{
int num;
+
+ if (TREE_TYPE (field) == error_mark_node)
+ continue;
+
num = classify_argument (TYPE_MODE (TREE_TYPE (field)),
TREE_TYPE (field), subclasses,
bit_offset);
+2006-06-08 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR target/27421
+ * gcc.dg/union-3.c: New test.
+
2006-06-08 Richard Guenther <rguenther@suse.de>
PR middle-end/27116
--- /dev/null
+/* PR target/27421 */
+/* { dg-do compile } */
+
+union A
+{
+ int i;
+ void x[1]; /* { dg-error "array of voids" } */
+};
+
+void foo(union A a) {}