From: Ted Kremenek Date: Thu, 23 Aug 2007 18:04:38 +0000 (+0000) Subject: Refactored "getSubStmt" and "SubStmt" from the CaseStmt and DefaultStmt X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=edcc752060be38bfa7e7b32691c0cc4d843622a8;p=clang Refactored "getSubStmt" and "SubStmt" from the CaseStmt and DefaultStmt class to their common parent class SwitchCase. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41329 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Stmt.h b/include/clang/AST/Stmt.h index 7eefd7fc56..bfae638133 100644 --- a/include/clang/AST/Stmt.h +++ b/include/clang/AST/Stmt.h @@ -145,8 +145,10 @@ class SwitchCase : public Stmt { // A pointer to the following CaseStmt or DefaultStmt class, // used by SwitchStmt. SwitchCase *NextSwitchCase; + Stmt *SubStmt; protected: - SwitchCase(StmtClass SC) : Stmt(SC), NextSwitchCase(0) {} + SwitchCase(StmtClass SC, Stmt* substmt) : Stmt(SC), NextSwitchCase(0), + SubStmt(substmt) {} public: const SwitchCase *getNextSwitchCase() const { return NextSwitchCase; } @@ -155,6 +157,8 @@ public: void setNextSwitchCase(SwitchCase *SC) { NextSwitchCase = SC; } + Stmt *getSubStmt() { return SubStmt; } + static bool classof(const Stmt *T) { return T->getStmtClass() == CaseStmtClass || T->getStmtClass() == DefaultStmtClass; @@ -165,14 +169,12 @@ public: class CaseStmt : public SwitchCase { Expr *LHSVal; Expr *RHSVal; // Non-null for GNU "case 1 ... 4" extension - Stmt *SubStmt; public: CaseStmt(Expr *lhs, Expr *rhs, Stmt *substmt) - : SwitchCase(CaseStmtClass), LHSVal(lhs), RHSVal(rhs), SubStmt(substmt) {} + : SwitchCase(CaseStmtClass,substmt), LHSVal(lhs), RHSVal(rhs) {} Expr *getLHS() { return LHSVal; } Expr *getRHS() { return RHSVal; } - Stmt *getSubStmt() { return SubStmt; } static bool classof(const Stmt *T) { return T->getStmtClass() == CaseStmtClass; @@ -182,13 +184,11 @@ public: class DefaultStmt : public SwitchCase { SourceLocation DefaultLoc; - Stmt *SubStmt; public: - DefaultStmt(SourceLocation DL, Stmt *substmt) : SwitchCase(DefaultStmtClass), - DefaultLoc(DL), SubStmt(substmt) {} + DefaultStmt(SourceLocation DL, Stmt *substmt) : + SwitchCase(DefaultStmtClass,substmt), DefaultLoc(DL) {} SourceLocation getDefaultLoc() const { return DefaultLoc; } - Stmt *getSubStmt() { return SubStmt; } static bool classof(const Stmt *T) { return T->getStmtClass() == DefaultStmtClass;