public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: c++/332
@ 2001-04-01  0:00 lerdsuwa
  0 siblings, 0 replies; only message in thread
From: lerdsuwa @ 2001-04-01  0:00 UTC (permalink / raw)
  To: nobody; +Cc: gcc-prs

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

From: lerdsuwa@gcc.gnu.org
To: Thomas.Hagelien@matek.sintef.no, gcc-gnats@gcc.gnu.org,
  martin@loewis.home.cs.tu-berlin.de, nobody@gcc.gnu.org
Cc:  
Subject: Re: c++/332
Date: 4 Feb 2001 13:26:47 -0000

 Synopsis: typename bug, gcc hangs (Internal compiler error)
 
 State-Changed-From-To: analyzed->closed
 State-Changed-By: lerdsuwa
 State-Changed-When: Sun Feb  4 05:26:47 2001
 State-Changed-Why:
     The bug appears to be fixed in the CVS.  Tested with snapshot 20010123.
 
 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=332&database=gcc
>From rat@scssoft.com Sun Apr 01 00:00:00 2001
From: rat@scssoft.com
To: gcc-gnats@gcc.gnu.org
Subject: c++/1842: when using regparm-attribute on function pointer, it affects previous function pointer too
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010202211425.5549.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg00868.html
Content-length: 1530

>Number:         1842
>Category:       c++
>Synopsis:       when using regparm-attribute on function pointer, it affects previous function pointer too
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 02 13:16:00 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     Zbynek Vyskovsky
>Release:        gcc version 2.95.3 20010125 (prerelease)
>Organization:
>Environment:
Debian Linux - sid. i386 compatible, no special environment for gcc, other information probably irrelevant
>Description:
When declaring two pointers to function, and the second one with attribute regparm(3), it affects the first pointer too (when generating the code). See assembler-output for details.
>How-To-Repeat:
Run gcc -S regparm_bug.cc and see how f1 is called. Its arguments are passed via registers, although it wasn't declared with regparm attribute.
>Fix:
There is possibility to add regparm-attribute on the end of declaration, but it makes portability (on other compilers) much more tough.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-c++src; name="regparm_bug.cc.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="regparm_bug.cc.gz"

H4sIAN4bezoCA1WNsQrDMAxEd32FIIuUqU7HfIxxiRw0xDWqUgql/147Q2luO453b1gkaxFMtj5Q
i6MCyMvFCj7vuiCNOTD1lefzEGNyN73tLjESmaw12UZXZsYxTz8Ihj9FxQDQNVvSQv2I4Q3YksMB
1EYcdTpVE9+b+TLDB77p5uYkswAAAA==
>From carlo@alinoe.com Sun Apr 01 00:00:00 2001
From: Carlo Wood <carlo@alinoe.com>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org
Subject: Re: middle-end/2133
Date: Sun, 01 Apr 2001 00:00:00 -0000
Message-id: <20010303042602.17170.qmail@sourceware.cygnus.com>
X-SW-Source: 2001-q1/msg01926.html
Content-length: 1493

The following reply was made to PR middle-end/2133; it has been noted by GNATS.

From: Carlo Wood <carlo@alinoe.com>
To: gcc-gnats@gcc.gnu.org, nobody@gcc.gnu.org
Cc:  
Subject: Re: middle-end/2133
Date: Sat, 3 Mar 2001 05:24:34 +0100

 http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=2133&database=gcc
 
 I decided to make a summary for the person who will fix this.
 
 Bug1:
 
   A 'K' in front of (member) function pointers (and references) need 
   to make the pointer (reference) const, not the function:
 
   KPF<return_type><p1><p2>...<pN>E               --> <return_type> (* const)(<p1>, <p2>, ..., <pN>)
   KRF<return_type><p1><p2>...<pN>E               --> <return_type> (& const)(<p1>, <p2>, ..., <pN>)
   KM<scopetype>F<return_type><p1><p2>...<pN>E    --> <return_type> (<scopetype>::* const)(<p1>, <p2>, ..., <pN>)
 
   or, more in general:
 
   K<type>                                       --> <prefix> const <postfix>
 
 Bug2:
 
   A possibility needs to be added to the mangling sheme to mangle
   const functions, this should be done as was done in with the old
   ABI by putting the qualifier in front of the 'F':
 
   PKF<return_type><p1><p2>...<pN>E               --> <return_type> (*)(<p1>, <p2>, ..., <pN>) const
   RKF<return_type><p1><p2>...<pN>E               --> <return_type> (&)(<p1>, <p2>, ..., <pN>) const
   M<scopetype>KF<return_type><p1><p2>...<pN>E    --> <return_type> (<scopetype>::*)(<p1>, <p2>, ..., <pN>) const
 
 -- 
 Carlo Wood <carlo@alinoe.com>


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2001-04-01  0:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-04-01  0:00 c++/332 lerdsuwa

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).