From: Chris Lattner Date: Sat, 25 Aug 2007 01:55:00 +0000 (+0000) Subject: fix off-by-one error X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1f683e9cf2e855b32d3fb4b142aa121cd3cf1088;p=clang fix off-by-one error git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41392 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/AST/Expr.cpp b/AST/Expr.cpp index e71fcfa792..d5fd241e8a 100644 --- a/AST/Expr.cpp +++ b/AST/Expr.cpp @@ -231,6 +231,8 @@ bool Expr::hasLocalSideEffect() const { } case BinaryOperatorClass: return cast(this)->isAssignmentOp(); + case CompoundAssignOperator: + return true; case MemberExprClass: case ArraySubscriptExprClass: diff --git a/AST/Stmt.cpp b/AST/Stmt.cpp index 58d0eb755c..4aca7a4991 100644 --- a/AST/Stmt.cpp +++ b/AST/Stmt.cpp @@ -21,7 +21,7 @@ static struct StmtClassNameTable { const char *Name; unsigned Counter; unsigned Size; -} StmtClassInfo[Stmt::lastExprConstant]; +} StmtClassInfo[Stmt::lastExprConstant+1]; static StmtClassNameTable &getStmtInfoTableEntry(Stmt::StmtClass E) { static bool Initialized = false; @@ -48,13 +48,13 @@ void Stmt::PrintStats() { unsigned sum = 0; fprintf(stderr, "*** Stmt/Expr Stats:\n"); - for (int i = 0; i != Stmt::lastExprConstant; i++) { + for (int i = 0; i != Stmt::lastExprConstant+1; i++) { if (StmtClassInfo[i].Name == 0) continue; sum += StmtClassInfo[i].Counter; } fprintf(stderr, " %d stmts/exprs total.\n", sum); sum = 0; - for (int i = 0; i != Stmt::lastExprConstant; i++) { + for (int i = 0; i != Stmt::lastExprConstant+1; i++) { if (StmtClassInfo[i].Name == 0) continue; fprintf(stderr, " %d %s, %d each (%d bytes)\n", StmtClassInfo[i].Counter, StmtClassInfo[i].Name,