This revision was automatically updated to reflect the committed changes. Closed by commit rL260952: [clang-tidy] Fix an assert failure of ForStmt in `readability-braces-around… (authored by hokein).
Changed prior to commit: http://reviews.llvm.org/D17134?vs=48057&id=48058#toc Repository: rL LLVM http://reviews.llvm.org/D17134 Files: clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp Index: clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp @@ -215,6 +215,8 @@ return false; } + if (!InitialLoc.isValid()) + return false; const SourceManager &SM = *Result.SourceManager; const ASTContext *Context = Result.Context; @@ -225,8 +227,6 @@ 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. Index: clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp +++ clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp @@ -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;; +}
Index: clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp =================================================================== --- clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp +++ clang-tools-extra/trunk/clang-tidy/readability/BracesAroundStatementsCheck.cpp @@ -215,6 +215,8 @@ return false; } + if (!InitialLoc.isValid()) + return false; const SourceManager &SM = *Result.SourceManager; const ASTContext *Context = Result.Context; @@ -225,8 +227,6 @@ 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. Index: clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp =================================================================== --- clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp +++ clang-tools-extra/trunk/test/clang-tidy/readability-braces-around-statements-assert-failure.cpp @@ -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;; +}
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits