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:
parent
250fce1dfa
commit
6169e5fdd8
@ -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.
|
||||
|
11
gcc/c-decl.c
11
gcc/c-decl.c
@ -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)
|
||||
|
@ -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.
|
||||
|
9
gcc/testsuite/gcc.dg/noncompile/20020130-1.c
Normal file
9
gcc/testsuite/gcc.dg/noncompile/20020130-1.c
Normal 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user