Thanks Mike. I had a quick look at the CLEANUP_STMT and cp-tree.def says "A CLEANUP_STMT marks the point at which a declaration is fully constructed.", while doc says "Used to represent an action that should take place upon exit from the enclosing scope. Typically, these actions are calls to destructors for local objects." Huh? So, how come it e.g. initializes variables, and on the other hand it should run dtors? I'm baffled (but it's too late for me to think clearly ;)).
Marek