Fabian Cenedese <Cenedese@xxxxxxxx> 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