summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Stmt.cpp
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-08-28 18:21:14 +0000
committerChad Rosier <mcrosier@apple.com>2012-08-28 18:21:14 +0000
commitf70b7e284ca2f95da2eba3870334a3246097f682 (patch)
tree493a8571b61fea044ba4788786a09a526537d0ac /clang/lib/AST/Stmt.cpp
parent595c131460e40b9e13e929d1198a9b8ec1c941aa (diff)
downloadbcm5719-llvm-f70b7e284ca2f95da2eba3870334a3246097f682.tar.gz
bcm5719-llvm-f70b7e284ca2f95da2eba3870334a3246097f682.zip
[ms-inline asm] Use dyn_cast<> here to simplify logic.
llvm-svn: 162773
Diffstat (limited to 'clang/lib/AST/Stmt.cpp')
-rw-r--r--clang/lib/AST/Stmt.cpp54
1 files changed, 24 insertions, 30 deletions
diff --git a/clang/lib/AST/Stmt.cpp b/clang/lib/AST/Stmt.cpp
index e486d05ef95..84622658d5e 100644
--- a/clang/lib/AST/Stmt.cpp
+++ b/clang/lib/AST/Stmt.cpp
@@ -322,56 +322,50 @@ bool Stmt::hasImplicitControlFlow() const {
}
std::string AsmStmt::generateAsmString(ASTContext &C) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->generateAsmString(C);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->generateAsmString(C);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->generateAsmString(C);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->generateAsmString(C);
llvm_unreachable("unknown asm statement kind!");
}
StringRef AsmStmt::getOutputConstraint(unsigned i) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->getOutputConstraint(i);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->getOutputConstraint(i);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->getOutputConstraint(i);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->getOutputConstraint(i);
llvm_unreachable("unknown asm statement kind!");
}
const Expr *AsmStmt::getOutputExpr(unsigned i) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->getOutputExpr(i);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->getOutputExpr(i);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->getOutputExpr(i);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->getOutputExpr(i);
llvm_unreachable("unknown asm statement kind!");
}
StringRef AsmStmt::getInputConstraint(unsigned i) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->getInputConstraint(i);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->getInputConstraint(i);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->getInputConstraint(i);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->getInputConstraint(i);
llvm_unreachable("unknown asm statement kind!");
}
const Expr *AsmStmt::getInputExpr(unsigned i) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->getInputExpr(i);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->getInputExpr(i);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->getInputExpr(i);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->getInputExpr(i);
llvm_unreachable("unknown asm statement kind!");
}
StringRef AsmStmt::getClobber(unsigned i) const {
- StmtClass stmtClass = getStmtClass();
- if (stmtClass == Stmt::GCCAsmStmtClass)
- return static_cast<const GCCAsmStmt*>(this)->getClobber(i);
- if (stmtClass == Stmt::MSAsmStmtClass)
- return static_cast<const MSAsmStmt*>(this)->getClobber(i);
+ if (const GCCAsmStmt *gccAsmStmt = dyn_cast<GCCAsmStmt>(this))
+ return gccAsmStmt->getClobber(i);
+ if (const MSAsmStmt *msAsmStmt = dyn_cast<MSAsmStmt>(this))
+ return msAsmStmt->getClobber(i);
llvm_unreachable("unknown asm statement kind!");
}
OpenPOWER on IntegriCloud