bricci updated this revision to Diff 155563. bricci retitled this revision from "[AST] Use llvm::TrailingObjects in clang::CXXTryStmt" to "[AST] Use llvm::TrailingObjects in CXXTryStmt". bricci edited the summary of this revision. bricci added reviewers: arphaman, bkramer. bricci added a comment.
1. Remove unnecessary use of getTrailingObjects and use getStmts instead. 2. Move friend class ASTStmtReader; to the top with the other friend declaration. 3. Reword message. Repository: rC Clang https://reviews.llvm.org/D48873 Files: include/clang/AST/StmtCXX.h lib/AST/StmtCXX.cpp Index: lib/AST/StmtCXX.cpp =================================================================== --- lib/AST/StmtCXX.cpp +++ lib/AST/StmtCXX.cpp @@ -40,7 +40,7 @@ CXXTryStmt::CXXTryStmt(SourceLocation tryLoc, Stmt *tryBlock, ArrayRef<Stmt *> handlers) : Stmt(CXXTryStmtClass), TryLoc(tryLoc), NumHandlers(handlers.size()) { - Stmt **Stmts = getTrailingObjects<Stmt *>(); + Stmt **Stmts = getStmts(); Stmts[0] = tryBlock; std::copy(handlers.begin(), handlers.end(), Stmts + 1); } Index: include/clang/AST/StmtCXX.h =================================================================== --- include/clang/AST/StmtCXX.h +++ include/clang/AST/StmtCXX.h @@ -66,6 +66,7 @@ private llvm::TrailingObjects<CXXTryStmt, Stmt *> { friend TrailingObjects; + friend class ASTStmtReader; SourceLocation TryLoc; unsigned NumHandlers; @@ -90,34 +91,31 @@ SourceLocation getTryLoc() const { return TryLoc; } SourceLocation getEndLoc() const { - return getTrailingObjects<Stmt *>()[NumHandlers]->getLocEnd(); + return getStmts()[NumHandlers]->getLocEnd(); } CompoundStmt *getTryBlock() { - return cast<CompoundStmt>(getTrailingObjects<Stmt *>()[0]); + return cast<CompoundStmt>(getStmts()[0]); } const CompoundStmt *getTryBlock() const { - return cast<CompoundStmt>(getTrailingObjects<Stmt *>()[0]); + return cast<CompoundStmt>(getStmts()[0]); } unsigned getNumHandlers() const { return NumHandlers; } CXXCatchStmt *getHandler(unsigned i) { - return cast<CXXCatchStmt>(getTrailingObjects<Stmt *>()[i + 1]); + return cast<CXXCatchStmt>(getStmts()[i + 1]); } const CXXCatchStmt *getHandler(unsigned i) const { - return cast<CXXCatchStmt>(getTrailingObjects<Stmt *>()[i + 1]); + return cast<CXXCatchStmt>(getStmts()[i + 1]); } static bool classof(const Stmt *T) { return T->getStmtClass() == CXXTryStmtClass; } child_range children() { - return child_range(getTrailingObjects<Stmt *>(), - getTrailingObjects<Stmt *>() + getNumHandlers() + 1); + return child_range(getStmts(), getStmts() + getNumHandlers() + 1); } - - friend class ASTStmtReader; }; /// CXXForRangeStmt - This represents C++0x [stmt.ranged]'s ranged for
Index: lib/AST/StmtCXX.cpp =================================================================== --- lib/AST/StmtCXX.cpp +++ lib/AST/StmtCXX.cpp @@ -40,7 +40,7 @@ CXXTryStmt::CXXTryStmt(SourceLocation tryLoc, Stmt *tryBlock, ArrayRef<Stmt *> handlers) : Stmt(CXXTryStmtClass), TryLoc(tryLoc), NumHandlers(handlers.size()) { - Stmt **Stmts = getTrailingObjects<Stmt *>(); + Stmt **Stmts = getStmts(); Stmts[0] = tryBlock; std::copy(handlers.begin(), handlers.end(), Stmts + 1); } Index: include/clang/AST/StmtCXX.h =================================================================== --- include/clang/AST/StmtCXX.h +++ include/clang/AST/StmtCXX.h @@ -66,6 +66,7 @@ private llvm::TrailingObjects<CXXTryStmt, Stmt *> { friend TrailingObjects; + friend class ASTStmtReader; SourceLocation TryLoc; unsigned NumHandlers; @@ -90,34 +91,31 @@ SourceLocation getTryLoc() const { return TryLoc; } SourceLocation getEndLoc() const { - return getTrailingObjects<Stmt *>()[NumHandlers]->getLocEnd(); + return getStmts()[NumHandlers]->getLocEnd(); } CompoundStmt *getTryBlock() { - return cast<CompoundStmt>(getTrailingObjects<Stmt *>()[0]); + return cast<CompoundStmt>(getStmts()[0]); } const CompoundStmt *getTryBlock() const { - return cast<CompoundStmt>(getTrailingObjects<Stmt *>()[0]); + return cast<CompoundStmt>(getStmts()[0]); } unsigned getNumHandlers() const { return NumHandlers; } CXXCatchStmt *getHandler(unsigned i) { - return cast<CXXCatchStmt>(getTrailingObjects<Stmt *>()[i + 1]); + return cast<CXXCatchStmt>(getStmts()[i + 1]); } const CXXCatchStmt *getHandler(unsigned i) const { - return cast<CXXCatchStmt>(getTrailingObjects<Stmt *>()[i + 1]); + return cast<CXXCatchStmt>(getStmts()[i + 1]); } static bool classof(const Stmt *T) { return T->getStmtClass() == CXXTryStmtClass; } child_range children() { - return child_range(getTrailingObjects<Stmt *>(), - getTrailingObjects<Stmt *>() + getNumHandlers() + 1); + return child_range(getStmts(), getStmts() + getNumHandlers() + 1); } - - friend class ASTStmtReader; }; /// CXXForRangeStmt - This represents C++0x [stmt.ranged]'s ranged for
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits