}
}
-AsmStmt::AsmStmt(SourceLocation asmloc,
- bool isvolatile,
- unsigned numoutputs,
- unsigned numinputs,
- std::string *names,
- StringLiteral **constraints,
- Expr **exprs,
- StringLiteral *asmstr,
- unsigned numclobbers,
- StringLiteral **clobbers,
- SourceLocation rparenloc)
+//===----------------------------------------------------------------------===//
+// Constructors
+//===----------------------------------------------------------------------===//
+
+AsmStmt::AsmStmt(SourceLocation asmloc, bool isvolatile,
+ unsigned numoutputs, unsigned numinputs,
+ std::string *names, StringLiteral **constraints,
+ Expr **exprs, StringLiteral *asmstr, unsigned numclobbers,
+ StringLiteral **clobbers, SourceLocation rparenloc)
: Stmt(AsmStmtClass), AsmLoc(asmloc), RParenLoc(rparenloc), AsmStr(asmstr)
- , IsVolatile(isvolatile), NumOutputs(numoutputs), NumInputs(numinputs)
-{
+ , IsVolatile(isvolatile), NumOutputs(numoutputs), NumInputs(numinputs) {
for (unsigned i = 0, e = numinputs + numoutputs; i != e; i++) {
Names.push_back(names[i]);
Exprs.push_back(exprs[i]);
Clobbers.push_back(clobbers[i]);
}
+ObjCForCollectionStmt::ObjCForCollectionStmt(Stmt *Elem, Expr *Collect,
+ Stmt *Body, SourceLocation FCL,
+ SourceLocation RPL)
+: Stmt(ObjCForCollectionStmtClass) {
+ SubExprs[ELEM] = Elem;
+ SubExprs[COLLECTION] = reinterpret_cast<Stmt*>(Collect);
+ SubExprs[BODY] = Body;
+ ForLoc = FCL;
+ RParenLoc = RPL;
+}
+
+
+ObjCAtCatchStmt::ObjCAtCatchStmt(SourceLocation atCatchLoc,
+ SourceLocation rparenloc,
+ Stmt *catchVarStmtDecl, Stmt *atCatchStmt,
+ Stmt *atCatchList)
+: Stmt(ObjCAtCatchStmtClass) {
+ SubExprs[SELECTOR] = catchVarStmtDecl;
+ SubExprs[BODY] = atCatchStmt;
+ if (!atCatchList)
+ NextAtCatchStmt = NULL;
+ else {
+ ObjCAtCatchStmt *AtCatchList =
+ static_cast<ObjCAtCatchStmt*>(atCatchList);
+ while (AtCatchList->NextAtCatchStmt)
+ AtCatchList = AtCatchList->NextAtCatchStmt;
+ AtCatchList->NextAtCatchStmt = this;
+ }
+ AtCatchLoc = atCatchLoc;
+ RParenLoc = rparenloc;
+}
+
+
//===----------------------------------------------------------------------===//
// Child Iterators for iterating over subexpressions/substatements
//===----------------------------------------------------------------------===//
// Copy initializer elements.
bool AllConstElements = true;
unsigned i = 0;
- for (i = 0; i < NumInitElements; ++i) {
+ for (i = 0; i != NumInitElements; ++i) {
if (llvm::Constant *C =
dyn_cast<llvm::Constant>(CGF.EmitScalarExpr(E->getInit(i))))
ArrayElts.push_back(C);
SourceLocation RParenLoc;
public:
ObjCForCollectionStmt(Stmt *Elem, Expr *Collect, Stmt *Body,
- SourceLocation FCL, SourceLocation RPL)
- : Stmt(ObjCForCollectionStmtClass) {
- SubExprs[ELEM] = Elem;
- SubExprs[COLLECTION] = reinterpret_cast<Stmt*>(Collect);
- SubExprs[BODY] = Body;
- ForLoc = FCL;
- RParenLoc = RPL;
- }
-
+ SourceLocation FCL, SourceLocation RPL);
+
Stmt *getElement() { return SubExprs[ELEM]; }
Expr *getCollection() {
return reinterpret_cast<Expr*>(SubExprs[COLLECTION]);
llvm::SmallVector<StringLiteral*, 4> Clobbers;
public:
- AsmStmt(SourceLocation asmloc,
- bool isvolatile,
- unsigned numoutputs,
- unsigned numinputs,
- std::string *names,
- StringLiteral **constraints,
- Expr **exprs,
- StringLiteral *asmstr,
- unsigned numclobbers,
- StringLiteral **clobbers,
- SourceLocation rparenloc);
+ AsmStmt(SourceLocation asmloc, bool isvolatile, unsigned numoutputs,
+ unsigned numinputs, std::string *names, StringLiteral **constraints,
+ Expr **exprs, StringLiteral *asmstr, unsigned numclobbers,
+ StringLiteral **clobbers, SourceLocation rparenloc);
bool isVolatile() const { return IsVolatile; }
public:
ObjCAtCatchStmt(SourceLocation atCatchLoc, SourceLocation rparenloc,
- Stmt *catchVarStmtDecl, Stmt *atCatchStmt, Stmt *atCatchList)
- : Stmt(ObjCAtCatchStmtClass) {
- SubExprs[SELECTOR] = catchVarStmtDecl;
- SubExprs[BODY] = atCatchStmt;
- if (!atCatchList)
- NextAtCatchStmt = NULL;
- else {
- ObjCAtCatchStmt *AtCatchList =
- static_cast<ObjCAtCatchStmt*>(atCatchList);
- while (AtCatchList->NextAtCatchStmt)
- AtCatchList = AtCatchList->NextAtCatchStmt;
- AtCatchList->NextAtCatchStmt = this;
- }
- AtCatchLoc = atCatchLoc;
- RParenLoc = rparenloc;
- }
+ Stmt *catchVarStmtDecl, Stmt *atCatchStmt, Stmt *atCatchList);
const Stmt *getCatchBody() const { return SubExprs[BODY]; }
Stmt *getCatchBody() { return SubExprs[BODY]; }
virtual SourceRange getSourceRange() const {
if (Throw)
return SourceRange(AtThrowLoc, Throw->getLocEnd());
- else
- return SourceRange(AtThrowLoc);
+ else
+ return SourceRange(AtThrowLoc);
}
static bool classof(const Stmt *T) {