summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/c/ChangeLog4
-rw-r--r--gcc/c/c-decl.c6
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/pr71426.c5
4 files changed, 15 insertions, 3 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 8617f08f978..9f0b91afb6a 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -3,6 +3,10 @@
PR c/71418
* c-decl.c (grokdeclarator): Check TYPE_P.
+ PR c/71426
+ * c-decl.c (get_parm_info): Don't crash on an assert on invalid
+ code.
+
2016-06-07 David Malcolm <dmalcolm@redhat.com>
* c-parser.c (c_parser_postfix_expression): In __builtin_offsetof
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index ac83e2fa519..5c08c5947c0 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -7054,9 +7054,9 @@ get_parm_info (bool ellipsis, tree expr)
break;
case FUNCTION_DECL:
- /* FUNCTION_DECLs appear when there is an implicit function
- declaration in the parameter list. */
- gcc_assert (b->nested);
+ /* FUNCTION_DECLs appear when there is an implicit function
+ declaration in the parameter list. */
+ gcc_assert (b->nested || seen_error ());
goto set_shadowed;
case CONST_DECL:
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 607f21c3329..0177653452b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -3,6 +3,9 @@
PR c/71418
* gcc.dg/noncompile/pr71418.c: New test.
+ PR c/71426
+ * gcc.dg/noncompile/pr71426.c: New test.
+
2016-06-07 Jan Hubicka <hubicka@ucw.cz>
* gcc.dg/ipa/inlinehint-4.c: Disable partial inlining.
diff --git a/gcc/testsuite/gcc.dg/noncompile/pr71426.c b/gcc/testsuite/gcc.dg/noncompile/pr71426.c
new file mode 100644
index 00000000000..874e18976e9
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noncompile/pr71426.c
@@ -0,0 +1,5 @@
+/* PR c/71426 */
+/* { dg-do compile } */
+/* { dg-options "-w" } */
+
+int f (int x[x - x ()]); /* { dg-error "undeclared" } */