re PR c/69824 (internal compiler error in unshare_body)
PR c/69824 * c-decl.c (get_parm_info): Don't queue implicit function declarations for later. PR c/69824 * gcc.dg/pr69824.c: New test. From-SVN: r234000
This commit is contained in:
parent
5c03c4211d
commit
29b9828fa4
4 changed files with 24 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
|||
2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
|
||||
|
||||
PR c/69824
|
||||
* c-decl.c (get_parm_info): Don't queue implicit function declarations
|
||||
for later.
|
||||
|
||||
2016-03-04 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c/69798
|
||||
|
|
|
@ -7050,25 +7050,28 @@ get_parm_info (bool ellipsis, tree expr)
|
|||
vec_safe_push (tags, tag);
|
||||
break;
|
||||
|
||||
case FUNCTION_DECL:
|
||||
/* FUNCTION_DECLs appear when there is an implicit function
|
||||
declaration in the parameter list. */
|
||||
gcc_assert (b->nested);
|
||||
goto set_shadowed;
|
||||
|
||||
case CONST_DECL:
|
||||
case TYPE_DECL:
|
||||
case FUNCTION_DECL:
|
||||
/* CONST_DECLs appear here when we have an embedded enum,
|
||||
and TYPE_DECLs appear here when we have an embedded struct
|
||||
or union. No warnings for this - we already warned about the
|
||||
type itself. FUNCTION_DECLs appear when there is an implicit
|
||||
function declaration in the parameter list. */
|
||||
type itself. */
|
||||
|
||||
/* When we reinsert this decl in the function body, we need
|
||||
to reconstruct whether it was marked as nested. */
|
||||
gcc_assert (TREE_CODE (decl) == FUNCTION_DECL
|
||||
? b->nested
|
||||
: !b->nested);
|
||||
gcc_assert (!b->nested);
|
||||
DECL_CHAIN (decl) = others;
|
||||
others = decl;
|
||||
/* fall through */
|
||||
|
||||
case ERROR_MARK:
|
||||
set_shadowed:
|
||||
/* error_mark_node appears here when we have an undeclared
|
||||
variable. Just throw it away. */
|
||||
if (b->id)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
|
||||
|
||||
PR c/69824
|
||||
* gcc.dg/pr69824.c: New test.
|
||||
|
||||
2016-03-05 Tom de Vries <tom@codesourcery.com>
|
||||
|
||||
* c-c++-common/goacc/nesting-fail-1.c (f_acc_routine): New function.
|
||||
|
|
4
gcc/testsuite/gcc.dg/pr69824.c
Normal file
4
gcc/testsuite/gcc.dg/pr69824.c
Normal file
|
@ -0,0 +1,4 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-w" } */
|
||||
int bar() { return foo(); }
|
||||
void baz(int c[foo()]) { return; }
|
Loading…
Add table
Reference in a new issue