[cxx-abi-dev] Document gcc's use of the C5/D5 comdats

Dennis Handly dhandly at cup.hp.com
Tue Sep 16 01:57:46 UTC 2014


>From: =?UTF-8?Q?Rafael_Esp=C3=ADndola?= <rafael.espindola at gmail.com>
>The attached patch updates the ABI to document how gcc uses the C5 and
>D5 comdats to group constructors and destructors.

Hmm, I thought aC++ had C5/D5 entry points added at one time but I no longer
see them.

Each constructor/destructor variant is in its own comdat.

Index: 204      Directory Section Name: foo::foo()(allocating)[_ZN3fooC3Ev]
Index: 205      Directory Section Name: foo::~foo()(base)[_ZN3fooD2Ev]
Index: 206      Directory Section Name: foo::~foo()(deallocating)[_ZN3fooD0Ev]
Index: 207      Directory Section Name: foo::~foo()(complete)[_ZN3fooD1Ev]
Index: 208      Directory Section Name: bar::bar()(allocating)[_ZN3barC3Ev]
Index: 209      Directory Section Name: bar::~bar()(base)[_ZN3barD2Ev]
Index: 210      Directory Section Name: bar::~bar()(deallocating)[_ZN3barD0Ev]
Index: 211      Directory Section Name: bar::~bar()(complete)[_ZN3barD1Ev]
Index: 213      Directory Section Name: bar::barf()[_ZN3bar4barfEv]
Index: 214      Directory Section Name: foo::barf()[_ZN3foo4barfEv]

>implementation can choose to group the constructors and destructors,
>but if it chooses to use C5/D5, then it must put the same symbols in
>them as gcc does.
Rafael

Yes.


More information about the cxx-abi-dev mailing list