This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Dwarf in assembler file


Fabian Cenedese <Cenedese@indel.ch> writes:

> Why are there three symbols _ZN17_TASK_CLASS_NAME_D{0,1,2}Ev? They're all
> placed on the same source line .loc 3 120 0, contain exactly the same code. So what
> is the meaning/difference between these three? I also get two symbols for the constructor,
> also only differing in the last number.

These are required by the C++ ABI:
    http://codesourcery.com/cxx-abi/

base object destructor of a class T
    A function that runs the destructors for non-static data members
    of T and non-virtual direct base classes of T.

complete object destructor of a class T
    A function that, in addition to the actions required of a base
    object destructor, runs the destructors for the virtual base
    classes of T.

deleting destructor of a class T
    A function that, in addition to the actions required of a complete
    object destructor, calls the appropriate deallocation function
    (i.e,. operator delete) for T.

The compiler should do a better job of combining them, since they are
often the same.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]