summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/decl-1.c
diff options
context:
space:
mode:
authorNeil Booth <neil@daikokuya.demon.co.uk>2002-02-16 17:31:16 +0000
committerNeil Booth <neil@gcc.gnu.org>2002-02-16 17:31:16 +0000
commit7f311f637fb7a5aaf375d78c7f585bc4c43665dc (patch)
treeeb14dbc5898a9737a61514a73d071548782eec97 /gcc/testsuite/gcc.dg/decl-1.c
parent8d6e459dd04ce48a04a330b97efe87acc5b8502d (diff)
downloadgcc-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.c18
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" } */
}