This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Dwarf in assembler file
- From: Ian Lance Taylor <iant at google dot com>
- To: Fabian Cenedese <Cenedese at indel dot ch>
- Cc: gcc-help at gcc dot gnu dot org
- Date: 30 Nov 2006 09:12:01 -0800
- Subject: Re: Dwarf in assembler file
- References: <5.2.0.9.1.20061130170056.0189cb20@NT_SERVER>
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