CompoundStmt::setStmts was reimplemented to save a pointer (r321429/llvm-mirror/clang@d0ee47a).
The patch assumes allocation of a new CompoundStmt if its statements are modified. Unfortunately this needs the newly created CompoundStmt swapped in its users making the AST visitation harder. This break external tools such as cling which alters CompoundStmts to implement its interactive extensions.
This patch patch brings the old facilities only when the new interface CompoundStmt::replaceStmts is called.