public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/3187] gcc-3.0 prerelease lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
@ 2003-06-01 19:13 ` pinskia@physics.uc.edu
  2003-06-24  0:45 ` [Bug c++/3187] [3.3/3.4 Regression] " pinskia at physics dot uc dot edu
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia@physics.uc.edu @ 2003-06-01 19:13 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187



------- Additional Comments From pinskia@physics.uc.edu  2003-06-01 19:13 -------
There was patch to fix this but it was never approved.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc-3.0 prerelease lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
  2003-06-01 19:13 ` [Bug c++/3187] gcc-3.0 prerelease lays down two copies of constructors pinskia@physics.uc.edu
@ 2003-06-24  0:45 ` pinskia at physics dot uc dot edu
  2003-06-24  0:50 ` pinskia at physics dot uc dot edu
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at physics dot uc dot edu @ 2003-06-24  0:45 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


pinskia at physics dot uc dot edu changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|gcc-3.0 prerelease lays down|[3.3/3.4 Regression] gcc-3.0
                   |two copies of constructors  |prerelease lays down two
                   |                            |copies of constructors
   Target Milestone|---                         |3.3.1


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc-3.0 prerelease lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
  2003-06-01 19:13 ` [Bug c++/3187] gcc-3.0 prerelease lays down two copies of constructors pinskia@physics.uc.edu
  2003-06-24  0:45 ` [Bug c++/3187] [3.3/3.4 Regression] " pinskia at physics dot uc dot edu
@ 2003-06-24  0:50 ` pinskia at physics dot uc dot edu
  2003-06-24 14:48 ` [Bug c++/3187] [3.3/3.4 Regression] gcc " bangerth at dealii dot org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at physics dot uc dot edu @ 2003-06-24  0:50 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187



------- Additional Comments From pinskia at physics dot uc dot edu  2003-06-24 00:50 -------
simple example:

struct A{A();};
A::A(){}


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (2 preceding siblings ...)
  2003-06-24  0:50 ` pinskia at physics dot uc dot edu
@ 2003-06-24 14:48 ` bangerth at dealii dot org
  2003-06-24 17:22 ` mmitchel at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: bangerth at dealii dot org @ 2003-06-24 14:48 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187



------- Additional Comments From bangerth at dealii dot org  2003-06-24 13:46 -------
See also this thread about multiple entry points:
  http://gcc.gnu.org/ml/gcc/2003-06/msg01985.html

W.


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (3 preceding siblings ...)
  2003-06-24 14:48 ` [Bug c++/3187] [3.3/3.4 Regression] gcc " bangerth at dealii dot org
@ 2003-06-24 17:22 ` mmitchel at gcc dot gnu dot org
  2003-11-25 21:42 ` gbburkhardt at aaahawk dot com
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2003-06-24 17:22 UTC (permalink / raw)
  To: gcc-bugs

PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.3.1                       |3.4


------- Additional Comments From mmitchel at gcc dot gnu dot org  2003-06-24 16:23 -------
It would be nice to fix this for 3.4 (by either using multiple entry points, or
something like the Apple patch submitted at one point), but any change that
large would be too much for the 3.3 branch so I've moved the target milestone
for this PR to 3.4.


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (4 preceding siblings ...)
  2003-06-24 17:22 ` mmitchel at gcc dot gnu dot org
@ 2003-11-25 21:42 ` gbburkhardt at aaahawk dot com
  2003-11-29  1:52 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: gbburkhardt at aaahawk dot com @ 2003-11-25 21:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From gbburkhardt at aaahawk dot com  2003-11-25 21:42 -------
see also this thread for problems the duplicate constructors cause gdb:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10512

Boy, this one's been open for awhile!!

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (5 preceding siblings ...)
  2003-11-25 21:42 ` gbburkhardt at aaahawk dot com
@ 2003-11-29  1:52 ` pinskia at gcc dot gnu dot org
  2004-01-12 17:12 ` bangerth at dealii dot org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2003-11-29  1:52 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2003-11-29 01:52 -------
Most likely will not get done for 3.4.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2003-11-09 03:18:14         |2003-11-29 01:52:21
               date|                            |
   Target Milestone|3.4                         |3.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (6 preceding siblings ...)
  2003-11-29  1:52 ` pinskia at gcc dot gnu dot org
@ 2004-01-12 17:12 ` bangerth at dealii dot org
  2004-01-14  3:57 ` giovannibajo at libero dot it
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: bangerth at dealii dot org @ 2004-01-12 17:12 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-01-12 17:12 -------
*** Bug 13660 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |Rainer dot Bensch at rsd dot
                   |                            |rohde-schwarz dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (7 preceding siblings ...)
  2004-01-12 17:12 ` bangerth at dealii dot org
@ 2004-01-14  3:57 ` giovannibajo at libero dot it
  2004-01-14  5:31 ` pinskia at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-14  3:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-14 03:57 -------
Retargeting to 3.4 - RM must decide.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|3.5.0                       |3.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] [3.3/3.4 Regression] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (8 preceding siblings ...)
  2004-01-14  3:57 ` giovannibajo at libero dot it
@ 2004-01-14  5:31 ` pinskia at gcc dot gnu dot org
  2004-01-16 18:19 ` [Bug c++/3187] " mmitchel at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-01-14  5:31 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-01-14 05:31 -------
I really do not know if this really qualifies as a regression as we changed the ABI to something that 
requires this.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (9 preceding siblings ...)
  2004-01-14  5:31 ` pinskia at gcc dot gnu dot org
@ 2004-01-16 18:19 ` mmitchel at gcc dot gnu dot org
  2004-01-18  2:45 ` giovannibajo at libero dot it
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2004-01-16 18:19 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From mmitchel at gcc dot gnu dot org  2004-01-16 18:19 -------
I'm changing this to an enhancement request.

It is, in some sense, a regression -- but it's really a direct consequence of
the new ABI.  

Fixing it will require substantial effort.  I hope that we will get a chance to
do the multiple-entry point stuff -- but it's certainly not going to happen
before GCC 3.4.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
            Summary|[3.3/3.4 Regression] gcc    |gcc lays down two copies of
                   |lays down two copies of     |constructors
                   |constructors                |
   Target Milestone|3.4.0                       |---


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (10 preceding siblings ...)
  2004-01-16 18:19 ` [Bug c++/3187] " mmitchel at gcc dot gnu dot org
@ 2004-01-18  2:45 ` giovannibajo at libero dot it
  2004-08-12  1:51 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 42+ messages in thread
From: giovannibajo at libero dot it @ 2004-01-18  2:45 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-01-18 02:45 -------
*** Bug 13725 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rmerkert at alphatech dot
                   |                            |com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (11 preceding siblings ...)
  2004-01-18  2:45 ` giovannibajo at libero dot it
@ 2004-08-12  1:51 ` pinskia at gcc dot gnu dot org
  2005-06-15 21:09 ` larue at cadence dot com
  2005-06-15 21:19 ` pinskia at gcc dot gnu dot org
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-12  1:51 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |16996
              nThis|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (12 preceding siblings ...)
  2004-08-12  1:51 ` pinskia at gcc dot gnu dot org
@ 2005-06-15 21:09 ` larue at cadence dot com
  2005-06-15 21:19 ` pinskia at gcc dot gnu dot org
  14 siblings, 0 replies; 42+ messages in thread
From: larue at cadence dot com @ 2005-06-15 21:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From larue at cadence dot com  2005-06-15 21:09 -------
This problem makes it difficult to debug C++ code. This is affecting the 
systemC (www.systemc.org) community. It is more than a minor issue those 
debugging C++.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |larue at cadence dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <20010614114602.3187.peter@empeg.com>
                   ` (13 preceding siblings ...)
  2005-06-15 21:09 ` larue at cadence dot com
@ 2005-06-15 21:19 ` pinskia at gcc dot gnu dot org
  14 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-15 21:19 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-06-15 21:19 -------
(In reply to comment #17)
> This problem makes it difficult to debug C++ code. This is affecting the 
> systemC (www.systemc.org) community. It is more than a minor issue those 
> debugging C++.
The debuger should be able to handle this as it will also get templates wrong.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2012-10-19 10:06 ` jakub at gcc dot gnu.org
@ 2012-10-19 10:34 ` ararunprasad at gmail dot com
  4 siblings, 0 replies; 42+ messages in thread
From: ararunprasad at gmail dot com @ 2012-10-19 10:34 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187

--- Comment #42 from Arunprasad <ararunprasad at gmail dot com> 2012-10-19 10:34:11 UTC ---
So I'm assuming like the issue still exists in gcc family of tool-chains. Fix
has been temporarily suspended due to ABI compatibility.


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2012-10-19  6:41 ` ararunprasad at gmail dot com
@ 2012-10-19 10:06 ` jakub at gcc dot gnu.org
  2012-10-19 10:34 ` ararunprasad at gmail dot com
  4 siblings, 0 replies; 42+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-10-19 10:06 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187

--- Comment #41 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-10-19 10:05:55 UTC ---
The reason why this hasn't been closed is that we only use an alias of one kind
of ctor (resp. dtor) to the other one if they are the same (and for deleting
dtor just always call the other dtor).  If they are different, then they can't
be aliased together, what we could do (perhaps as an option) is to emit another
function, which would take an argument what kind of ctor resp. dtor it is, and
behave differently depending on that argument, then have both kinds of ctor
resp. dtor to tail call (or if not possible, just call) the other function.
I guess it could have ABI consequences though (in which comdat section to place
it).


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
  2012-10-18 18:01 ` ararunprasad at gmail dot com
  2012-10-18 23:02 ` paolo.carlini at oracle dot com
@ 2012-10-19  6:41 ` ararunprasad at gmail dot com
  2012-10-19 10:06 ` jakub at gcc dot gnu.org
  2012-10-19 10:34 ` ararunprasad at gmail dot com
  4 siblings, 0 replies; 42+ messages in thread
From: ararunprasad at gmail dot com @ 2012-10-19  6:41 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187

--- Comment #40 from Arunprasad <ararunprasad at gmail dot com> 2012-10-19 06:41:04 UTC ---
Thank you.Is there any way to find it from nm output.?


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
  2012-10-18 18:01 ` ararunprasad at gmail dot com
@ 2012-10-18 23:02 ` paolo.carlini at oracle dot com
  2012-10-19  6:41 ` ararunprasad at gmail dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 42+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-10-18 23:02 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|gcc-bugs at gcc dot gnu.org |jakub at gcc dot gnu.org

--- Comment #39 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-10-18 23:01:59 UTC ---
For sure I can see the Nov 2009 commit in the 4.5.0 ChangeLog, but it would be
indeed nice if either Jakub or Jason could write a few words in the audit trail
here, explaining why the PR is still open and what is still missing.


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
@ 2012-10-18 18:01 ` ararunprasad at gmail dot com
  2012-10-18 23:02 ` paolo.carlini at oracle dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 42+ messages in thread
From: ararunprasad at gmail dot com @ 2012-10-18 18:01 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187

Arunprasad <ararunprasad at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ararunprasad at gmail dot
                   |                            |com

--- Comment #38 from Arunprasad <ararunprasad at gmail dot com> 2012-10-18 18:01:14 UTC ---
from which version this fix will be available?


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (19 preceding siblings ...)
  2009-12-01 20:10 ` jakub at gcc dot gnu dot org
@ 2009-12-02 14:32 ` jakub at gcc dot gnu dot org
  20 siblings, 0 replies; 42+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-12-02 14:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #37 from jakub at gcc dot gnu dot org  2009-12-02 14:31 -------
Subject: Bug 3187

Author: jakub
Date: Wed Dec  2 14:31:21 2009
New Revision: 154912

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154912
Log:
Fix a backport glitch for PR c++/3187.

Modified:
    branches/redhat/gcc-4_4-branch/gcc/cp/ChangeLog
    branches/redhat/gcc-4_4-branch/gcc/cp/decl2.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (18 preceding siblings ...)
  2009-11-18  9:54 ` jakub at gcc dot gnu dot org
@ 2009-12-01 20:10 ` jakub at gcc dot gnu dot org
  2009-12-02 14:32 ` jakub at gcc dot gnu dot org
  20 siblings, 0 replies; 42+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-12-01 20:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #36 from jakub at gcc dot gnu dot org  2009-12-01 20:09 -------
Subject: Bug 3187

Author: jakub
Date: Tue Dec  1 20:09:37 2009
New Revision: 154880

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154880
Log:
        PR c++/3187
        * optimize.c (cdtor_comdat_group): New function.
        (maybe_clone_body): Also optimize DECL_COMDAT base/complete cdtors
        and in that case put also the deleting dtor in the same comdat group
        as base and complete dtor if dtor is virtual.

Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/optimize.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (17 preceding siblings ...)
  2009-11-12  4:51 ` jason at gcc dot gnu dot org
@ 2009-11-18  9:54 ` jakub at gcc dot gnu dot org
  2009-12-01 20:10 ` jakub at gcc dot gnu dot org
  2009-12-02 14:32 ` jakub at gcc dot gnu dot org
  20 siblings, 0 replies; 42+ messages in thread
From: jakub at gcc dot gnu dot org @ 2009-11-18  9:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #35 from jakub at gcc dot gnu dot org  2009-11-18 09:54 -------
Subject: Bug 3187

Author: jakub
Date: Wed Nov 18 09:53:52 2009
New Revision: 154284

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154284
Log:
        PR c++/3187
        * cgraph.h (struct cgraph_node): Add same_body and same_body_alias
        fields.
        (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
        prototypes.
        * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks,
        cgraph_materialize_all_clones): Handle same_body aliases.
        * cgraph.c (cgraph_allocate_node): New function.
        (cgraph_create_node): Use it.
        (cgraph_node_for_decl, cgraph_node, cgraph_get_node,
        cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases.
        (cgraph_same_body_alias, cgraph_remove_same_body_alias): New
        functions.
        * lto-cgraph.c (lto_output_node): Stream out same_body aliases.
        (input_node): Stream in same_body aliases.
        * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers
        for same_body aliases.
        (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases.

        * cp-tree.h (expand_or_defer_fn_1): New prototype.
        * decl2.c (cp_write_global_declarations): Mark as !DECL_EXTERNAL
        also all same_body aliases.
        * semantics.c (expand_or_defer_fn): Move most of the function
        except registering with cgraph to ...
        (expand_or_defer_fn_1): ... here.  New function.
        * optimize.c: Include cgraph.h.
        (maybe_clone_body): If in charge parm is not used and both base
        and complete clones are created and are not comdat, tell cgraph
        they have the same body.
        * Make-lang.in (cp/optimize.o): Depend on $(CGRAPH_H).

        * g++.dg/abi/mangle26.C: Also match *C2* definition.
        * g++.dg/abi/mangle27.C: Likewise.
        * g++.dg/abi/mangle28.C: Likewise.
        * g++.dg/abi/mangle29.C: Likewise.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/Make-lang.in
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/decl2.c
    trunk/gcc/cp/optimize.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/lto-cgraph.c
    trunk/gcc/lto-symtab.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/abi/mangle26.C
    trunk/gcc/testsuite/g++.dg/abi/mangle27.C
    trunk/gcc/testsuite/g++.dg/abi/mangle28.C
    trunk/gcc/testsuite/g++.dg/abi/mangle29.C


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (16 preceding siblings ...)
  2009-08-27  1:41 ` carrot at google dot com
@ 2009-11-12  4:51 ` jason at gcc dot gnu dot org
  2009-11-18  9:54 ` jakub at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: jason at gcc dot gnu dot org @ 2009-11-12  4:51 UTC (permalink / raw)
  To: gcc-bugs



-- 

jason at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|jason at gcc dot gnu dot org|unassigned at gcc dot gnu
                   |                            |dot org
             Status|ASSIGNED                    |NEW


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (15 preceding siblings ...)
  2008-12-22  3:13 ` jason at gcc dot gnu dot org
@ 2009-08-27  1:41 ` carrot at google dot com
  2009-11-12  4:51 ` jason at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: carrot at google dot com @ 2009-08-27  1:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #34 from carrot at google dot com  2009-08-27 01:40 -------
There is one optimization that we can do without affecting the ABI and linker
compatibility. The delete destructor(D0) always contains the content of
complete desturctor(D1) followed by a function call to delete. So instead of
cloning the abstract destructor function body to the delete destructor(D0), we
can generate a function call to complete destructor(D1) followed by a function
call to delete.


-- 

carrot at google dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |carrot at google dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (14 preceding siblings ...)
  2008-10-21 18:39 ` alexandre dot nunes at gmail dot com
@ 2008-12-22  3:13 ` jason at gcc dot gnu dot org
  2009-08-27  1:41 ` carrot at google dot com
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: jason at gcc dot gnu dot org @ 2008-12-22  3:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #33 from jason at gcc dot gnu dot org  2008-12-22 03:11 -------
Bill Maddox posted a patch at
http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01147.html


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (13 preceding siblings ...)
  2008-08-01 16:08 ` amylaar at gcc dot gnu dot org
@ 2008-10-21 18:39 ` alexandre dot nunes at gmail dot com
  2008-12-22  3:13 ` jason at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: alexandre dot nunes at gmail dot com @ 2008-10-21 18:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #32 from alexandre dot nunes at gmail dot com  2008-10-21 18:37 -------
I was considering using C++ for an arm-elf target, but I'm dropping that in
favour of plain C because of this silly thing. This sucks, because other than
that g++ does a pretty decent job when generating small, optimized code: I've
got no abstraction penalty at all, but a few duplicated constructors here and
there lead to about 23% code increase, and that wasn't acceptable.

The other funny thing is that if this is fixed, it'll be by 4.4 or something,
and so far I can't consider using gcc versions newer than 4.2.x, at least
because of PR31849.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (12 preceding siblings ...)
  2008-07-29 13:58 ` manu at gcc dot gnu dot org
@ 2008-08-01 16:08 ` amylaar at gcc dot gnu dot org
  2008-10-21 18:39 ` alexandre dot nunes at gmail dot com
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: amylaar at gcc dot gnu dot org @ 2008-08-01 16:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #31 from amylaar at gcc dot gnu dot org  2008-08-01 16:07 -------
(In reply to comment #27)
> (In reply to comment #20)
> 
> Ian proposed handling the simple case in which the two constructors ("clones")
> are identical by emitting the code only once, but labelling it with the symbols
> for both constructors.  This scheme fails in the case that the constructors
> must go in a comdat group. What do we name the group?  If we invent a new name,
> this will have ABI impact, as other implementations must not step on it.  If we
> use the name of one of the constructors, we may find that the section is
> discarded in favor of a like-named section produced by another compiler, but
> which need not define both symbols, resulting in link-incompatibility.

link-incompatibility is often of a lesser concern in the embedded world,
where some people are prepared to rebuild all their libraries if they can
save 20% code space this way.
Thus, having an option to use the scheme where the comdat section - if any -
is named after only one of the constructors / destructors would be helpful.
For situations where there are more concerns about link compatibility, I
suppose we could initiate a transitionary period where we put a weak
definition of the *1* con/destructor in the *2* section, and vice versa.
When a user is confident that all the libraries are built at least with this
transitionary scheme, they can turn on a switch to only emit the needed
sections, thus saving at least some space where not all the constructors /
destructors are coming from the libraries.
This transitionary period could be ended on a target-by-target basis when
the an ABI change is deemed safe, or extended indefinitely where it is
not considered safe.


-- 

amylaar at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amylaar at gcc dot gnu dot
                   |                            |org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (11 preceding siblings ...)
  2008-07-29 11:32 ` dbaldin at upb dot de
@ 2008-07-29 13:58 ` manu at gcc dot gnu dot org
  2008-08-01 16:08 ` amylaar at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: manu at gcc dot gnu dot org @ 2008-07-29 13:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #30 from manu at gcc dot gnu dot org  2008-07-29 13:57 -------
Dear Daniel, we would like to fix all bugs but we cannot force volunteers to
fix specific bugs and, on the other hand, hired developers fix those bugs that
are most interesting for their employers. 

If this were such a huge issue for the embedded market, surely, some company or
consortium would have already hired CodeSourcery or someone else to fix it long
time ago.

Greetings.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2008-02-25 18:37 ` jason at gcc dot gnu dot org
@ 2008-07-29 11:32 ` dbaldin at upb dot de
  2008-07-29 13:58 ` manu at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: dbaldin at upb dot de @ 2008-07-29 11:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #29 from dbaldin at upb dot de  2008-07-29 11:32 -------
I wonder if there is anybody working on this bug since there is no target
milestone assigned to it. This bug is definitly not an enhancement since due to
this bug it is impossible/or very hard to create good software for embedded
systems with very limited resources. We are currently working on an rtos
designed to work only 64 kb of flash memory and the binary size is drastically
increased by this bug. 

This bug is very annoying and should soon be fixed knowing that this bug has
been out there for more than 7 years ... 

Greetings


-- 

dbaldin at upb dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dbaldin at upb dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2008-02-19 20:21 ` jason at gcc dot gnu dot org
@ 2008-02-25 18:37 ` jason at gcc dot gnu dot org
  2008-07-29 11:32 ` dbaldin at upb dot de
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: jason at gcc dot gnu dot org @ 2008-02-25 18:37 UTC (permalink / raw)
  To: gcc-bugs



-- 

jason at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-02-19 20:20:48         |2008-02-25 18:37:01
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2007-05-25  3:57 ` maddox at google dot com
@ 2008-02-19 20:21 ` jason at gcc dot gnu dot org
  2008-02-25 18:37 ` jason at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: jason at gcc dot gnu dot org @ 2008-02-19 20:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #28 from jason at gcc dot gnu dot org  2008-02-19 20:20 -------
unsuspending.


-- 

jason at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jason at gcc dot gnu dot org
             Status|SUSPENDED                   |NEW
   Last reconfirmed|2005-08-03 02:30:41         |2008-02-19 20:20:48
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2006-09-05  7:18 ` gcc at mirality dot co dot nz
@ 2007-05-25  3:57 ` maddox at google dot com
  2008-02-19 20:21 ` jason at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: maddox at google dot com @ 2007-05-25  3:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #27 from maddox at google dot com  2007-05-25 04:57 -------
(In reply to comment #20)

Ian proposed handling the simple case in which the two constructors ("clones")
are identical by emitting the code only once, but labelling it with the symbols
for both constructors.  This scheme fails in the case that the constructors
must go in a comdat group. What do we name the group?  If we invent a new name,
this will have ABI impact, as other implementations must not step on it.  If we
use the name of one of the constructors, we may find that the section is
discarded in favor of a like-named section produced by another compiler, but
which need not define both symbols, resulting in link-incompatibility.  It
appears, then,
that a distinct group name must be used for the combined constructor.  As I
understand it, this was the principal issue that kept Stuart's patch
(referenced in comment #23) from being adopted, so I don't see how this more
limited optimization sidesteps the objections to that patch.  I spoke with Ian
this afternoon, and he agreed with this analysis.  It was suggested in the
discussion of Stuart's patch that it would be sufficient to provide for a
vendor namespace.
This seems like a simple, general facility that could be leveraged in multiple
contexts, e.g., to support a more general subroutinization optimization.  How
difficult would it be to get such a provision into the ABI?  With a suitably
chosen mangling convention, I don't think that name collisions with other
ABI-conformant implementations would actually be a problem in practice, so it
seems to be more of a matter of agreeing on a convention for the sake of the
ABI standard rather than actually managing the transition.  Comments?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2006-02-05  4:00 ` gdr at integrable-solutions dot net
@ 2006-09-05  7:18 ` gcc at mirality dot co dot nz
  2007-05-25  3:57 ` maddox at google dot com
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: gcc at mirality dot co dot nz @ 2006-09-05  7:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #26 from gcc at mirality dot co dot nz  2006-09-05 07:18 -------
This is very aggravating, and *NEEDS* to get fixed soon.  Even if only for the
common duplicate-symbol-on-most-platforms case, that's a significant
improvement over what it's doing now.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2006-02-05  3:59 ` gdr at integrable-solutions dot net
@ 2006-02-05  4:00 ` gdr at integrable-solutions dot net
  2006-09-05  7:18 ` gcc at mirality dot co dot nz
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: gdr at integrable-solutions dot net @ 2006-02-05  4:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #25 from gdr at integrable-solutions dot net  2006-02-05 04:00 -------
Subject: Re:  gcc lays down two copies of constructors

"pinskia at physics dot uc dot edu" <gcc-bugzilla@gcc.gnu.org> writes:

| But that does not work for some assemblers/file formats (like Darwin) as
| Darwin's as finds subsections via labels.

then we would just have not to implement what Ian proposes for Darwin.

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2006-02-05  0:55 ` pinskia at gcc dot gnu dot org
@ 2006-02-05  3:59 ` gdr at integrable-solutions dot net
  2006-02-05  4:00 ` gdr at integrable-solutions dot net
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: gdr at integrable-solutions dot net @ 2006-02-05  3:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from gdr at integrable-solutions dot net  2006-02-05 03:58 -------
Subject: Re:  gcc lays down two copies of constructors

"ian at airs dot com" <gcc-bugzilla@gcc.gnu.org> writes:

| I don't feel that this PR should be suspended, at least not until we
| have fixed the common case.

I think I agree with Ian.

-- Gaby


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2006-02-05  0:42 ` ian at airs dot com
@ 2006-02-05  0:55 ` pinskia at gcc dot gnu dot org
  2006-02-05  3:59 ` gdr at integrable-solutions dot net
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-02-05  0:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from pinskia at gcc dot gnu dot org  2006-02-05 00:55 -------
For future reference:
a patch which would fix this:
http://gcc.gnu.org/ml/gcc-patches/2002-08/msg00354.html

Previous discussions about this issue:
http://gcc.gnu.org/ml/gcc/2002-12/msg00474.html

More about the patch:
http://gcc.gnu.org/ml/gcc-patches/2004-05/msg00689.html

There is more like other threads too which I cannot find right now.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2006-02-05  0:27 ` pinskia at physics dot uc dot edu
@ 2006-02-05  0:42 ` ian at airs dot com
  2006-02-05  0:55 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: ian at airs dot com @ 2006-02-05  0:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from ian at airs dot com  2006-02-05 00:42 -------
The fact that it does not work everywhere is not a valid reason that it should
not be implemented where it can work, particularly since the places where it
can work are, as it happens, most places.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* Re: [Bug c++/3187] gcc lays down two copies of constructors
  2006-02-05  0:20 ` ian at airs dot com
@ 2006-02-05  0:27   ` Andrew Pinski
  0 siblings, 0 replies; 42+ messages in thread
From: Andrew Pinski @ 2006-02-05  0:27 UTC (permalink / raw)
  To: gcc-bugzilla; +Cc: gcc-bugs


On Feb 4, 2006, at 7:20 PM, ian at airs dot com wrote:

>
>
> ------- Comment #20 from ian at airs dot com  2006-02-05 00:19 -------
> In many common cases, the two constructors are identical.  It should 
> not be
> hard to simply emit both appropriate symbols before the function.  
> That does
> not require any change to the ABI, but it eliminates the problem in 
> the common
> case.

But that does not work for some assemblers/file formats (like Darwin) as
Darwin's as finds subsections via labels.

There has been some discussion on why this suggestion would not
work on the mailing list (but I cannot find it right now).

Thanks,
Andrew Pinski


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
  2005-11-02  2:07 ` pinskia at gcc dot gnu dot org
  2006-02-05  0:20 ` ian at airs dot com
@ 2006-02-05  0:27 ` pinskia at physics dot uc dot edu
  2006-02-05  0:42 ` ian at airs dot com
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: pinskia at physics dot uc dot edu @ 2006-02-05  0:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from pinskia at gcc dot gnu dot org  2006-02-05 00:27 -------
Subject: Re:  gcc lays down two copies of constructors


On Feb 4, 2006, at 7:20 PM, ian at airs dot com wrote:

>
>
> ------- Comment #20 from ian at airs dot com  2006-02-05 00:19 -------
> In many common cases, the two constructors are identical.  It should 
> not be
> hard to simply emit both appropriate symbols before the function.  
> That does
> not require any change to the ABI, but it eliminates the problem in 
> the common
> case.

But that does not work for some assemblers/file formats (like Darwin) as
Darwin's as finds subsections via labels.

There has been some discussion on why this suggestion would not
work on the mailing list (but I cannot find it right now).

Thanks,
Andrew Pinski


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
  2005-11-02  2:07 ` pinskia at gcc dot gnu dot org
@ 2006-02-05  0:20 ` ian at airs dot com
  2006-02-05  0:27   ` Andrew Pinski
  2006-02-05  0:27 ` pinskia at physics dot uc dot edu
                   ` (18 subsequent siblings)
  20 siblings, 1 reply; 42+ messages in thread
From: ian at airs dot com @ 2006-02-05  0:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from ian at airs dot com  2006-02-05 00:19 -------
In many common cases, the two constructors are identical.  It should not be
hard to simply emit both appropriate symbols before the function.  That does
not require any change to the ABI, but it eliminates the problem in the common
case.

I don't feel that this PR should be suspended, at least not until we have fixed
the common case.


-- 

ian at airs dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ian at airs dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

* [Bug c++/3187] gcc lays down two copies of constructors
       [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
@ 2005-11-02  2:07 ` pinskia at gcc dot gnu dot org
  2006-02-05  0:20 ` ian at airs dot com
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 42+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-02  2:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from pinskia at gcc dot gnu dot org  2005-11-02 02:07 -------
Supending as there was ABI work that needed to be done to fix this.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |SUSPENDED
           Keywords|                            |ABI


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3187


^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2012-10-19 10:34 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20010614114602.3187.peter@empeg.com>
2003-06-01 19:13 ` [Bug c++/3187] gcc-3.0 prerelease lays down two copies of constructors pinskia@physics.uc.edu
2003-06-24  0:45 ` [Bug c++/3187] [3.3/3.4 Regression] " pinskia at physics dot uc dot edu
2003-06-24  0:50 ` pinskia at physics dot uc dot edu
2003-06-24 14:48 ` [Bug c++/3187] [3.3/3.4 Regression] gcc " bangerth at dealii dot org
2003-06-24 17:22 ` mmitchel at gcc dot gnu dot org
2003-11-25 21:42 ` gbburkhardt at aaahawk dot com
2003-11-29  1:52 ` pinskia at gcc dot gnu dot org
2004-01-12 17:12 ` bangerth at dealii dot org
2004-01-14  3:57 ` giovannibajo at libero dot it
2004-01-14  5:31 ` pinskia at gcc dot gnu dot org
2004-01-16 18:19 ` [Bug c++/3187] " mmitchel at gcc dot gnu dot org
2004-01-18  2:45 ` giovannibajo at libero dot it
2004-08-12  1:51 ` pinskia at gcc dot gnu dot org
2005-06-15 21:09 ` larue at cadence dot com
2005-06-15 21:19 ` pinskia at gcc dot gnu dot org
     [not found] <bug-3187-2475@http.gcc.gnu.org/bugzilla/>
2005-11-02  2:07 ` pinskia at gcc dot gnu dot org
2006-02-05  0:20 ` ian at airs dot com
2006-02-05  0:27   ` Andrew Pinski
2006-02-05  0:27 ` pinskia at physics dot uc dot edu
2006-02-05  0:42 ` ian at airs dot com
2006-02-05  0:55 ` pinskia at gcc dot gnu dot org
2006-02-05  3:59 ` gdr at integrable-solutions dot net
2006-02-05  4:00 ` gdr at integrable-solutions dot net
2006-09-05  7:18 ` gcc at mirality dot co dot nz
2007-05-25  3:57 ` maddox at google dot com
2008-02-19 20:21 ` jason at gcc dot gnu dot org
2008-02-25 18:37 ` jason at gcc dot gnu dot org
2008-07-29 11:32 ` dbaldin at upb dot de
2008-07-29 13:58 ` manu at gcc dot gnu dot org
2008-08-01 16:08 ` amylaar at gcc dot gnu dot org
2008-10-21 18:39 ` alexandre dot nunes at gmail dot com
2008-12-22  3:13 ` jason at gcc dot gnu dot org
2009-08-27  1:41 ` carrot at google dot com
2009-11-12  4:51 ` jason at gcc dot gnu dot org
2009-11-18  9:54 ` jakub at gcc dot gnu dot org
2009-12-01 20:10 ` jakub at gcc dot gnu dot org
2009-12-02 14:32 ` jakub at gcc dot gnu dot org
     [not found] <bug-3187-4@http.gcc.gnu.org/bugzilla/>
2012-10-18 18:01 ` ararunprasad at gmail dot com
2012-10-18 23:02 ` paolo.carlini at oracle dot com
2012-10-19  6:41 ` ararunprasad at gmail dot com
2012-10-19 10:06 ` jakub at gcc dot gnu.org
2012-10-19 10:34 ` ararunprasad at gmail dot com

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