public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: "Joseph S. Myers" <jsm28@cam.ac.uk>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: c/3116: Bug with using oldstyle prototype declarations
Date: Mon, 11 Jun 2001 06:36:00 -0000	[thread overview]
Message-ID: <20010611133602.32404.qmail@sourceware.cygnus.com> (raw)

The following reply was made to PR c/3116; it has been noted by GNATS.

From: "Joseph S. Myers" <jsm28@cam.ac.uk>
To: Andreas Jaeger <aj@suse.de>
Cc: <gcc-gnats@gcc.gnu.org>,  <gcc-patches@gcc.gnu.org>
Subject: Re: c/3116: Bug with using oldstyle prototype declarations
Date: Mon, 11 Jun 2001 14:30:07 +0100 (BST)

 On Mon, 11 Jun 2001, Andreas Jaeger wrote:
 
 > 	Compile the appended code, you get:
 > gee:~/tmp:[0]$ /opt/gcc-3.1-devel/bin/gcc -Wall -c fgetws.c
 > fgetws.c: In function `fgetws':
 > fgetws.c:18: argument `fp' doesn't match prototype
 > fgetws.c:11: prototype declaration
 
 > This is a regression from gcc 2.95.3.
 
 Fixed thus.
 
 Bootstrapped with no regressions on i686-pc-linux-gnu.  Applied to
 mainline and 3.0 branch.
 
 2001-06-11  Joseph S. Myers  <jsm28@cam.ac.uk>
 
 	* c-decl.c (store_parm_decls): When comparing types in an
 	old-style function declaration with those from a previous
 	prototype, compare the unqualified versions of parameter types.
 	Fixes PR c/3116.
 
 testsuite:
 2001-06-11  Joseph S. Myers  <jsm28@cam.ac.uk>
 
 	* gcc.c-torture/compile/20010611-1.c: New test.
 
 --- c-decl.c.orig	Mon Jun 11 10:31:10 2001
 +++ c-decl.c	Mon Jun 11 11:23:43 2001
 @@ -6436,9 +6436,11 @@ store_parm_decls ()
  					    "prototype declaration");
  		  break;
  		}
 -	      /* Type for passing arg must be consistent
 -		 with that declared for the arg.  */
 -	      if (! comptypes (DECL_ARG_TYPE (parm), TREE_VALUE (type)))
 +	      /* Type for passing arg must be consistent with that
 +		 declared for the arg.  ISO C says we take the unqualified
 +		 type for parameters declared with qualified type.  */
 +	      if (! comptypes (TYPE_MAIN_VARIANT (DECL_ARG_TYPE (parm)),
 +			       TYPE_MAIN_VARIANT (TREE_VALUE (type))))
  		{
  		  if (TYPE_MAIN_VARIANT (TREE_TYPE (parm))
  		      == TYPE_MAIN_VARIANT (TREE_VALUE (type)))
 --- testsuite/gcc.c-torture/compile/20010611-1.c.orig	Mon Mar 26 23:57:02 2001
 +++ testsuite/gcc.c-torture/compile/20010611-1.c	Mon Jun 11 11:26:56 2001
 @@ -0,0 +1,24 @@
 +/* Origin: PR c/3116 from Andreas Jaeger <aj@suse.de>.  */
 +/* When determining type compatibility of function types, we must remove
 +   qualifiers from argument types.  We used to fail to do this properly
 +   in store_parm_decls when comparing prototype and non-prototype
 +   declarations.  */
 +struct _IO_FILE {
 +  int _flags;
 +};
 +
 +typedef struct _IO_FILE __FILE;
 +typedef struct _IO_FILE _IO_FILE;
 +typedef long int wchar_t;
 +
 +extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n,
 +                        __FILE *__restrict __stream);
 +
 +wchar_t *
 +fgetws (buf, n, fp)
 +     wchar_t *buf;
 +     int n;
 +     _IO_FILE *fp;
 +{
 +  return (wchar_t *)0;
 +}
 
 -- 
 Joseph S. Myers
 jsm28@cam.ac.uk
 


             reply	other threads:[~2001-06-11  6:36 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-11  6:36 Joseph S. Myers [this message]
  -- strict thread matches above, loose matches on Subject: below --
2001-06-11  6:48 jsm28
2001-06-11  2:06 Andreas Jaeger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010611133602.32404.qmail@sourceware.cygnus.com \
    --to=jsm28@cam.ac.uk \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).