OSDN Git Service

* gcc.dg/decl-1.c: Update, new test.
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Feb 2002 17:31:16 +0000 (17:31 +0000)
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 16 Feb 2002 17:31:16 +0000 (17:31 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49804 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/decl-1.c

index 6da2970..48bc0e1 100644 (file)
@@ -1,3 +1,7 @@
+2002-02-16  Neil Booth  <neil@daikokuya.demon.co.uk>
+
+       * gcc.dg/decl-1.c: Update, new test.
+
 2002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
 
        * g++.dg/abi/bitfield1.C: New test.
index 23e490b..bfbc9fb 100644 (file)
@@ -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" } */
 }