diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-25 06:12:16 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-25 06:12:16 +0000 |
commit | 2dbd285f5033ca6dea25babfd1c43d9fec35e7e5 (patch) | |
tree | e3a1f6f14316cf44f45dcc28f142ca4db08487b3 /test/Sema/function.c | |
parent | 1ad9b28e3217c2349a04f3d3bf14f9c73a99afa7 (diff) |
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
Diffstat (limited to 'test/Sema/function.c')
-rw-r--r-- | test/Sema/function.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/test/Sema/function.c b/test/Sema/function.c index a1dd8b69e0..974f6e9737 100644 --- a/test/Sema/function.c +++ b/test/Sema/function.c @@ -79,4 +79,7 @@ inline foo_t invalid_type() { // expected-error {{unknown type name 'foo_t'}} typedef void fn_t(void); fn_t t17; +// PR4049 +unknown_type t18(void*) { // expected-error {{unknown type name 'unknown_type'}} +} |