fix PR4049, a crash on invalid, by making sema install the right number of 
parameters in a functiondecl, even if the decl is invalid and has a confusing
Declarator.  On the testcase, we now emit one beautiful diagnostic:

t.c:2:1: error: unknown type name 'unknown_type'
unknown_type f(void*)
^

GCC 4.0 produces:

t.c:2: error: syntax error before ‘f’
t.c: In function ‘f’:
t.c:2: error: parameter name omitted

and GCC 4.2:

t.c:2: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘f’



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70016 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/Sema/function.c b/test/Sema/function.c
index a1dd8b6..974f6e9 100644
--- a/test/Sema/function.c
+++ b/test/Sema/function.c
@@ -79,4 +79,7 @@
 typedef void fn_t(void);
 fn_t t17;
 
+// PR4049
+unknown_type t18(void*) {   // expected-error {{unknown type name 'unknown_type'}}
+}