[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