It feels somewhat heavyweight to introduce a new statement node for this, because it isn't really the case that an arbitrary statement can have cleanups outside of it. Could this instead be a base class that specific other *Stmt nodes (e.g., AsmStmt, CaptureStmt) can inherit from specifically? http://llvm-reviews.chandlerc.com/D672