c-decl.c (grokdeclarator): Handle type being a typedef for an invalid type.

* c-decl.c (grokdeclarator): Handle type being a typedef for an
	invalid type.

testsuite:
	* gcc.dg/noncompile/20020130-1.c: New test.

From-SVN: r49352
This commit is contained in:
Joseph Myers 2002-01-31 01:01:02 +00:00 committed by Joseph Myers
parent 250fce1dfa
commit 6169e5fdd8
4 changed files with 26 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
* c-decl.c (grokdeclarator): Handle type being a typedef for an
invalid type.
2002-01-30 David O'Brien <obrien@FreeBSD.org>
* config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.

View File

@ -4241,9 +4241,14 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, width)
/* Actual typedefs come to us as TYPE_DECL nodes. */
else if (TREE_CODE (id) == TYPE_DECL)
{
type = TREE_TYPE (id);
decl_attr = DECL_ATTRIBUTES (id);
typedef_decl = id;
if (TREE_TYPE (id) == error_mark_node)
; /* Allow the type to default to int to avoid cascading errors. */
else
{
type = TREE_TYPE (id);
decl_attr = DECL_ATTRIBUTES (id);
typedef_decl = id;
}
}
/* Built-in types come as identifiers. */
else if (TREE_CODE (id) == IDENTIFIER_NODE)

View File

@ -1,3 +1,7 @@
2002-01-31 Joseph S. Myers <jsm28@cam.ac.uk>
* gcc.dg/noncompile/20020130-1.c: New test.
2002-01-30 David Billinghurst <David.Billinghurst@riotinto.com>
* g77.dg/f77-edit-i-out.f: Escape \. Allow \r\n and \r.

View File

@ -0,0 +1,9 @@
/* Test for ICE when using typedef for bad type. */
/* Origin: Joseph Myers <jsm28@cam.ac.uk>. */
void
foo (void)
{
typedef int t[x]; /* { dg-error "undeclared|function" "x undeclared" } */
t bar;
}