Hi, If I dump the code generated by GCC for a virtual destructor (with -fdump- tree-original), I get something like this: ;; Function virtual Foo::~Foo() (null) ;; enabled by -tree-original { <<cleanup_point <<< Unknown tree: expr_stmt (void) (((struct Foo *) this)->_vptr.Foo = &_ZTV3Foo + 8) >>> >>; } <D.20148>:; if ((bool) (__in_chrg & 1)) { <<cleanup_point <<< Unknown tree: expr_stmt operator delete ((void *) this) >>> >>; } My question is: where is the code after "<D.20148>:;" located? It is outside of the destructor so when is this code executed? Regards, Job PS: I also posted this question at http://stackoverflow.com/questions/2685104/output-of-gcc-fdump-tree-original