Commit 6169e5fd by Joseph Myers Committed by Joseph Myers

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
parent 250fce1d
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.
......
......@@ -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)
......
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.
......
/* 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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment