https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70462

--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> ---
Author: jason
Date: Wed Jun 26 04:56:07 2019
New Revision: 272669

URL: https://gcc.gnu.org/viewcvs?rev=272669&root=gcc&view=rev
Log:
        PR c++/70462 - unnecessary base ctor variant with final.

As pointed out in the PR, we don't need base 'tor variants for a final
class, since it can never be a base.  I tried also dropping complete
variants for abstract classes, but that runs into ABI compatibility problems
with older releases that refer to those symbols.

        * optimize.c (populate_clone_array): Skip base variant if
        CLASSTYPE_FINAL.
        (maybe_clone_body): We don't need an alias if we are only defining
        one clone.

Added:
    trunk/gcc/testsuite/g++.dg/other/final8.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/optimize.c

Reply via email to