class DoStmt { //... virtual SourceRange getSourceRange() const { return SourceRange(DoLoc, SubExprs[BODY]->getLocEnd()); IMHO this should be: return SourceRange(DoLoc, SubExprs[COND]->getLocEnd()); } //... }; Best, Olaf Krzikalla