aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/AST/Expr.cpp4
-rw-r--r--lib/AST/StmtIterator.cpp35
2 files changed, 21 insertions, 18 deletions
diff --git a/lib/AST/Expr.cpp b/lib/AST/Expr.cpp
index 78d83d8508..6cdaacd689 100644
--- a/lib/AST/Expr.cpp
+++ b/lib/AST/Expr.cpp
@@ -1264,10 +1264,10 @@ Stmt::child_iterator SizeOfAlignOfTypeExpr::child_begin() {
if (VariableArrayType* T = dyn_cast<VariableArrayType>(Ty.getTypePtr()))
return child_iterator(T);
else
- return child_iterator((VariableArrayType*)0);
+ return child_iterator();
}
Stmt::child_iterator SizeOfAlignOfTypeExpr::child_end() {
- return child_iterator((VariableArrayType*)0);
+ return child_iterator();
}
// ArraySubscriptExpr
diff --git a/lib/AST/StmtIterator.cpp b/lib/AST/StmtIterator.cpp
index 1b0e9d57c0..46882422e1 100644
--- a/lib/AST/StmtIterator.cpp
+++ b/lib/AST/StmtIterator.cpp
@@ -35,22 +35,25 @@ void StmtIteratorBase::NextVA() {
p = FindVA(p->getElementType().getTypePtr());
setVAPtr(p);
- if (!p) {
- if (inDecl()) {
- if (VarDecl* VD = dyn_cast<VarDecl>(decl))
- if (VD->Init)
- return;
-
- NextDecl();
- }
- else if (inDeclGroup()) {
- if (VarDecl* VD = dyn_cast<VarDecl>(*DGI))
- if (VD->Init)
- return;
-
- NextDecl();
- }
- } else if (inSizeOfTypeVA()) {
+ if (p)
+ return;
+
+ if (inDecl()) {
+ if (VarDecl* VD = dyn_cast<VarDecl>(decl))
+ if (VD->Init)
+ return;
+
+ NextDecl();
+ }
+ else if (inDeclGroup()) {
+ if (VarDecl* VD = dyn_cast<VarDecl>(*DGI))
+ if (VD->Init)
+ return;
+
+ NextDecl();
+ }
+ else {
+ assert (inSizeOfTypeVA());
assert(!decl);
RawVAPtr = 0;
}