[clang-tidy] Fix an assert failure of ForStmt in `readability-braces-around-statements` check.

Reviewers: alexfh

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D17134

llvm-svn: 260952
This commit is contained in:
Haojian Wu 2016-02-16 10:31:33 +00:00
parent 91b1e19152
commit 67f880641c
2 changed files with 9 additions and 4 deletions

View File

@ -215,6 +215,8 @@ bool BracesAroundStatementsCheck::checkStmt(
return false;
}
if (!InitialLoc.isValid())
return false;
const SourceManager &SM = *Result.SourceManager;
const ASTContext *Context = Result.Context;
@ -225,8 +227,6 @@ bool BracesAroundStatementsCheck::checkStmt(
if (FileRange.isInvalid())
return false;
// InitialLoc points at the last token before opening brace to be inserted.
assert(InitialLoc.isValid());
// Convert InitialLoc to file location, if it's on the same macro expansion
// level as the start of the statement. We also need file locations for
// Lexer::getLocForEndOfToken working properly.

View File

@ -1,7 +1,12 @@
// RUN: %check_clang_tidy %s readability-braces-around-statements %t
// RUN: clang-tidy -checks='-*,readability-braces-around-statements' %s --
// Note: this test expects no assert failure happened in clang-tidy.
int test_failure() {
if (std::rand()) {
// CHECK-MESSAGES: :[[@LINE-1]]:7: error: use of undeclared identifier 'std'
}
}
void test_failure2() {
for (a b c;;
}