public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/41090] [4.3/4.4/4.5/4.6/4.7 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
@ 2011-06-27 14:40 ` rguenth at gcc dot gnu.org
  2012-01-05 18:14 ` [Bug c++/41090] [4.4/4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-27 14:40 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.6                       |4.4.7

--- Comment #13 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-27 12:14:22 UTC ---
4.3 branch is being closed, moving to 4.4.7 target.


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

* [Bug c++/41090] [4.4/4.5/4.6/4.7/4.8 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
  2011-06-27 14:40 ` [Bug c++/41090] [4.3/4.4/4.5/4.6/4.7 Regression] Using static label reference in c++ class constructor produces wrong code rguenth at gcc dot gnu.org
@ 2012-01-05 18:14 ` jakub at gcc dot gnu.org
  2012-01-12 19:07 ` jason at gcc dot gnu.org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-01-05 18:14 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org
   Target Milestone|4.4.7                       |4.8.0
            Summary|[4.4/4.5/4.6/4.7            |[4.4/4.5/4.6/4.7/4.8
                   |Regression] Using static    |Regression] Using static
                   |label reference in c++      |label reference in c++
                   |class constructor produces  |class constructor produces
                   |wrong code                  |wrong code
      Known to fail|                            |

--- Comment #14 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-01-05 18:11:57 UTC ---
Well, we could perhaps detect the problematic ctors or dtors and instead of
cloning them as we do now create a helper function which all of the ctors resp.
dtors would use.  Doesn't look like a 4.7 material at this point though.


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

* [Bug c++/41090] [4.4/4.5/4.6/4.7/4.8 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
  2011-06-27 14:40 ` [Bug c++/41090] [4.3/4.4/4.5/4.6/4.7 Regression] Using static label reference in c++ class constructor produces wrong code rguenth at gcc dot gnu.org
  2012-01-05 18:14 ` [Bug c++/41090] [4.4/4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
@ 2012-01-12 19:07 ` jason at gcc dot gnu.org
  2013-03-22 14:45 ` [Bug c++/41090] [4.6/4.7/4.8/4.9 " jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2012-01-12 19:07 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #15 from Jason Merrill <jason at gcc dot gnu.org> 2012-01-12 19:05:32 UTC ---
We should probably resurrect the decloning patch

  http://gcc.gnu.org/ml/gcc-patches/2007-11/msg01147.html

for this reason as well as the space optimization.


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

* [Bug c++/41090] [4.6/4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (2 preceding siblings ...)
  2012-01-12 19:07 ` jason at gcc dot gnu.org
@ 2013-03-22 14:45 ` jakub at gcc dot gnu.org
  2013-05-31 10:59 ` [Bug c++/41090] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-03-22 14:45 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.0                       |4.8.1

--- Comment #16 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-22 14:44:15 UTC ---
GCC 4.8.0 is being released, adjusting target milestone.


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (3 preceding siblings ...)
  2013-03-22 14:45 ` [Bug c++/41090] [4.6/4.7/4.8/4.9 " jakub at gcc dot gnu.org
@ 2013-05-31 10:59 ` jakub at gcc dot gnu.org
  2013-10-16  9:51 ` jakub at gcc dot gnu.org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-05-31 10:59 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.1                       |4.8.2

--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.1 has been released.


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (4 preceding siblings ...)
  2013-05-31 10:59 ` [Bug c++/41090] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
@ 2013-10-16  9:51 ` jakub at gcc dot gnu.org
  2013-12-23 17:49 ` jason at gcc dot gnu.org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-10-16  9:51 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.8.2                       |4.8.3

--- Comment #18 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
GCC 4.8.2 has been released.


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (5 preceding siblings ...)
  2013-10-16  9:51 ` jakub at gcc dot gnu.org
@ 2013-12-23 17:49 ` jason at gcc dot gnu.org
  2013-12-23 17:52 ` jason at gcc dot gnu.org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-12-23 17:49 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #19 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Mon Dec 23 17:49:47 2013
New Revision: 206182

URL: http://gcc.gnu.org/viewcvs?rev=206182&root=gcc&view=rev
Log:
    PR c++/41090
    Add -fdeclone-ctor-dtor.
gcc/cp/
    * optimize.c (can_alias_cdtor, populate_clone_array): Split out
    from maybe_clone_body.
    (maybe_thunk_body): New function.
    (maybe_clone_body): Call it.
    * mangle.c (write_mangled_name): Remove code to suppress
    writing of mangled name for cloned constructor or destructor.
    (write_special_name_constructor): Handle decloned constructor.
    (write_special_name_destructor): Handle decloned destructor.
    * method.c (trivial_fn_p): Handle decloning.
    * semantics.c (expand_or_defer_fn_1): Clone after setting linkage.
gcc/c-family/
    * c.opt: Add -fdeclone-ctor-dtor.
    * c-opts.c (c_common_post_options): Default to on iff -Os.
gcc/
    * cgraph.h (struct cgraph_node): Add calls_comdat_local.
    (symtab_comdat_local_p, symtab_in_same_comdat_p): New.
    * cif-code.def: Add USES_COMDAT_LOCAL.
    * symtab.c (verify_symtab_base): Make sure we don't refer to a
    comdat-local symbol from outside its comdat.
    * cgraph.c (verify_cgraph_node): Likewise.
    * cgraphunit.c (mark_functions_to_output): Don't mark comdat-locals.
    * ipa.c (symtab_remove_unreachable_nodes): Likewise.
    (function_and_variable_visibility): Handle comdat-local fns.
    * ipa-cp.c (determine_versionability): Don't clone comdat-locals.
    * ipa-inline-analysis.c (compute_inline_parameters): Update
    calls_comdat_local.
    * ipa-inline-transform.c (inline_call): Likewise.
    (save_inline_function_body): Don't clear DECL_COMDAT_GROUP.
    * ipa-inline.c (can_inline_edge_p): Check calls_comdat_local.
    * lto-cgraph.c (input_overwrite_node): Read calls_comdat_local.
    (lto_output_node): Write it.
    * symtab.c (symtab_dissolve_same_comdat_group_list): Clear
    DECL_COMDAT_GROUP for comdat-locals.
include/
    * demangle.h (enum gnu_v3_ctor_kinds):
    Added literal gnu_v3_unified_ctor.
    (enum gnu_v3_ctor_kinds):
    Added literal gnu_v3_unified_dtor.
libiberty/
    * cp-demangle.c (cplus_demangle_fill_ctor,cplus_demangle_fill_dtor):
    Handle unified ctor/dtor.
    (d_ctor_dtor_name): Handle unified ctor/dtor.

Added:
    trunk/gcc/testsuite/g++.dg/ext/label13a.C
    trunk/gcc/testsuite/g++.dg/opt/declone1.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-opts.c
    trunk/gcc/c-family/c.opt
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/cif-code.def
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/decl.c
    trunk/gcc/cp/mangle.c
    trunk/gcc/cp/method.c
    trunk/gcc/cp/optimize.c
    trunk/gcc/cp/semantics.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/ipa-cp.c
    trunk/gcc/ipa-inline-analysis.c
    trunk/gcc/ipa-inline-transform.c
    trunk/gcc/ipa-inline.c
    trunk/gcc/ipa.c
    trunk/gcc/lto-cgraph.c
    trunk/gcc/symtab.c
    trunk/include/ChangeLog
    trunk/include/demangle.h
    trunk/libiberty/ChangeLog
    trunk/libiberty/cp-demangle.c


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (6 preceding siblings ...)
  2013-12-23 17:49 ` jason at gcc dot gnu.org
@ 2013-12-23 17:52 ` jason at gcc dot gnu.org
  2013-12-26 12:28 ` dominiq at lps dot ens.fr
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-12-23 17:52 UTC (permalink / raw)
  To: gcc-bugs

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

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|4.8.3                       |4.9.0

--- Comment #20 from Jason Merrill <jason at gcc dot gnu.org> ---
Fixed for 4.9.


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (7 preceding siblings ...)
  2013-12-23 17:52 ` jason at gcc dot gnu.org
@ 2013-12-26 12:28 ` dominiq at lps dot ens.fr
  2013-12-26 19:00 ` dave.anglin at bell dot net
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 12+ messages in thread
From: dominiq at lps dot ens.fr @ 2013-12-26 12:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #21 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The test g++.dg/ext/label13.C XPASS after r20182 on darwin.


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (8 preceding siblings ...)
  2013-12-26 12:28 ` dominiq at lps dot ens.fr
@ 2013-12-26 19:00 ` dave.anglin at bell dot net
  2013-12-30 19:35 ` mikestump at comcast dot net
  2013-12-30 19:35 ` mrs at gcc dot gnu.org
  11 siblings, 0 replies; 12+ messages in thread
From: dave.anglin at bell dot net @ 2013-12-26 19:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #22 from dave.anglin at bell dot net ---
On 26-Dec-13, at 7:28 AM, dominiq at lps dot ens.fr wrote:

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41090
>
> --- Comment #21 from Dominique d'Humieres <dominiq at lps dot  
> ens.fr> ---
> The test g++.dg/ext/label13.C XPASS after r20182 on darwin.


Likewise on hppa2.0w-hp-hpux11.11.

Dave
--
John David Anglin    dave.anglin@bell.net


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (10 preceding siblings ...)
  2013-12-30 19:35 ` mikestump at comcast dot net
@ 2013-12-30 19:35 ` mrs at gcc dot gnu.org
  11 siblings, 0 replies; 12+ messages in thread
From: mrs at gcc dot gnu.org @ 2013-12-30 19:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #23 from mrs at gcc dot gnu.org <mrs at gcc dot gnu.org> ---
Author: mrs
Date: Mon Dec 30 19:34:53 2013
New Revision: 206252

URL: http://gcc.gnu.org/viewcvs?rev=206252&root=gcc&view=rev
Log:
    PR c++/41090
    * g++.dg/ext/label13.C: Update to not expect failures.

Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/g++.dg/ext/label13.C


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

* [Bug c++/41090] [4.7/4.8/4.9 Regression] Using static label reference in c++ class constructor produces wrong code
       [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
                   ` (9 preceding siblings ...)
  2013-12-26 19:00 ` dave.anglin at bell dot net
@ 2013-12-30 19:35 ` mikestump at comcast dot net
  2013-12-30 19:35 ` mrs at gcc dot gnu.org
  11 siblings, 0 replies; 12+ messages in thread
From: mikestump at comcast dot net @ 2013-12-30 19:35 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #24 from Mike Stump <mikestump at comcast dot net> ---
Thanks for the fix and the update guys.


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

end of thread, other threads:[~2013-12-30 19:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <bug-41090-4@http.gcc.gnu.org/bugzilla/>
2011-06-27 14:40 ` [Bug c++/41090] [4.3/4.4/4.5/4.6/4.7 Regression] Using static label reference in c++ class constructor produces wrong code rguenth at gcc dot gnu.org
2012-01-05 18:14 ` [Bug c++/41090] [4.4/4.5/4.6/4.7/4.8 " jakub at gcc dot gnu.org
2012-01-12 19:07 ` jason at gcc dot gnu.org
2013-03-22 14:45 ` [Bug c++/41090] [4.6/4.7/4.8/4.9 " jakub at gcc dot gnu.org
2013-05-31 10:59 ` [Bug c++/41090] [4.7/4.8/4.9 " jakub at gcc dot gnu.org
2013-10-16  9:51 ` jakub at gcc dot gnu.org
2013-12-23 17:49 ` jason at gcc dot gnu.org
2013-12-23 17:52 ` jason at gcc dot gnu.org
2013-12-26 12:28 ` dominiq at lps dot ens.fr
2013-12-26 19:00 ` dave.anglin at bell dot net
2013-12-30 19:35 ` mikestump at comcast dot net
2013-12-30 19:35 ` mrs at gcc dot gnu.org

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