+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
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)
+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.