diff options
author | Neil Booth <neil@daikokuya.demon.co.uk> | 2002-02-16 17:31:16 +0000 |
---|---|---|
committer | Neil Booth <neil@gcc.gnu.org> | 2002-02-16 17:31:16 +0000 |
commit | 7f311f637fb7a5aaf375d78c7f585bc4c43665dc (patch) | |
tree | eb14dbc5898a9737a61514a73d071548782eec97 /gcc/testsuite/gcc.dg/decl-1.c | |
parent | 8d6e459dd04ce48a04a330b97efe87acc5b8502d (diff) | |
download | gcc-7f311f637fb7a5aaf375d78c7f585bc4c43665dc.tar.gz |
* gcc.dg/decl-1.c: Update, new test.
From-SVN: r49804
Diffstat (limited to 'gcc/testsuite/gcc.dg/decl-1.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/decl-1.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/gcc/testsuite/gcc.dg/decl-1.c b/gcc/testsuite/gcc.dg/decl-1.c index 23e490b15c5..bfbc9fb5326 100644 --- a/gcc/testsuite/gcc.dg/decl-1.c +++ b/gcc/testsuite/gcc.dg/decl-1.c @@ -2,16 +2,28 @@ Source: Neil Booth, 12 Feb 2002. - In the declaration of proc, x must be parsed as a typedef name - (6.7.5.3 p11). */ + In the declaration of proc, x must be parsed as a typedef name (C99 + 6.7.5.3 p11. Also see C89 DR #009, which was erroneously ommitted + from C99, and resubmitted as DR #249: if in a parameter + declaration, an identifier can be read as a typedef name or a + paramter name, it is read as a typedef name). */ /* { dg-do compile } */ typedef int x; +typedef int y; int proc(int (x)); /* x is a typedef, param to proc is a function. */ int proc2(int x); /* x is an identifier, param is an int. */ +/* Parameter to proc3 is unnamed, with type a function that returns + int and takes a single argument of type function with one int + parameter returning int. In particular, proc3 is not a function + that takes a parameter y that is a function with one int parameter + returning int. 8-) */ +int proc3(int (y (x))); + int main () { - return proc (proc2); /* { dg-bogus "integer from pointer" } */ + proc (proc2); /* { dg-bogus "integer from pointer" } */ + return proc3 (proc); /* { dg-bogus "incompatible pointer type" } */ } |