re PR c/17023 (ICE with nested functions in parameter declaration)

PR c/17023
        * c-decl.c (store_parm_decls_oldstyle): Care for parameter type
        as error_mark_node.
        * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
        instaed of current_function_decl non-null.

From-SVN: r89063
This commit is contained in:
Richard Henderson 2004-10-14 16:20:58 -07:00 committed by Richard Henderson
parent 0c58f841a5
commit 559f2da552
4 changed files with 21 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2004-10-14 Richard Henderson <rth@redhat.com>
PR c/17023
* c-decl.c (store_parm_decls_oldstyle): Care for parameter type
as error_mark_node.
* c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null
instaed of current_function_decl non-null.
2004-10-14 Matt Austern <austern@apple.com>
* pointer-set.c: New file, special-purpose hash table.

View File

@ -6002,7 +6002,8 @@ store_parm_decls_oldstyle (tree fndecl, const struct c_arg_info *arg_info)
if (TREE_CODE (parm) != PARM_DECL)
continue;
if (!COMPLETE_TYPE_P (TREE_TYPE (parm)))
if (TREE_TYPE (parm) != error_mark_node
&& !COMPLETE_TYPE_P (TREE_TYPE (parm)))
{
error ("%Jparameter %qD has incomplete type", parm, parm);
TREE_TYPE (parm) = error_mark_node;

View File

@ -2033,7 +2033,7 @@ compstmt_contents_nonempty:
compstmt_primary_start:
'(' '{'
{ if (current_function_decl == 0)
{ if (cur_stmt_list == NULL)
{
error ("braced-group within expression allowed "
"only inside a function");

View File

@ -0,0 +1,10 @@
/* PR c/17023 */
/* { dg-do compile } */
/* { dg-options "" } */
void
f(a, b)
int a;
int b[({ void h() {} 1; })]; /* { dg-error "braced-group" } */
{
}