Hi I use a gcc 4.1.0 on cygwin, cross compiled for ppc -> generates elf. I use the -S to see what assembler code got generated and for this I need the line info (.loc). I have a simple file when compiled gives more than one symbol for constructor or destructor. The output is like this: .globl _ZN17_TASK_CLASS_NAME_D0Ev .type _ZN17_TASK_CLASS_NAME_D0Ev, @function _ZN17_TASK_CLASS_NAME_D0Ev: .LFB601: .loc 3 120 0 stwu 1,-24(1) #,, ...(snip) ... blr # .LFE601: .size _ZN17_TASK_CLASS_NAME_D0Ev, .-_ZN17_TASK_CLASS_NAME_D0Ev .align 2 .globl _ZN17_TASK_CLASS_NAME_D1Ev .type _ZN17_TASK_CLASS_NAME_D1Ev, @function _ZN17_TASK_CLASS_NAME_D1Ev: .LFB600: .loc 3 120 0 stwu 1,-24(1) #,, ...(snip) ... blr # .LFE600: .size _ZN17_TASK_CLASS_NAME_D1Ev, .-_ZN17_TASK_CLASS_NAME_D1Ev .align 2 .globl _ZN17_TASK_CLASS_NAME_D2Ev .type _ZN17_TASK_CLASS_NAME_D2Ev, @function _ZN17_TASK_CLASS_NAME_D2Ev: .LFB599: .loc 3 120 0 stwu 1,-24(1) #,, ...(snip) ... blr # .LFE599: .size _ZN17_TASK_CLASS_NAME_D2Ev, .-_ZN17_TASK_CLASS_NAME_D2Ev 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. How does the assembler know that it shouldn't do three times the same code but that this is three times the same? Thanks bye Fabi