[Bug c++/80849] Brace-init causes multiple runs of virtual base constructor if any ctor in the hierarchy has >1 argument

db0451 at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun May 21 20:48:00 GMT 2017


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

DB <db0451 at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #4 from DB <db0451 at gmail dot com> ---
...yeah, it's a dupe. By adding debug couts of the this pointer, we see that,
like in the older bug, the spurious calls get different/wrong values for it:

@0x7ffe9600e660: V42
@0x7ffe9600e660: V42
@0x7ffe9600e660: A42?
@0x7ffe9600e668: V42
@0x7ffe9600e668: B42?
@0x7ffe9600e660: C42?

Specifically, in addition to the first call to V() with the correct address,
there is an extra call to V() for every intermediate class (A and B), with the
this pointer being the address of THAT subject, not the real address of V
(although sometimes they happen to be the same).

*** This bug has been marked as a duplicate of bug 55922 ***


More information about the Gcc-bugs mailing list