r215549 - Fix crasher bug in clang-format.
Manuel Klimek
klimek at google.com
Wed Aug 13 07:00:42 PDT 2014
Author: klimek
Date: Wed Aug 13 09:00:41 2014
New Revision: 215549
URL: http://llvm.org/viewvc/llvm-project?rev=215549&view=rev
Log:
Fix crasher bug in clang-format.
Modified:
cfe/trunk/lib/Format/TokenAnnotator.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=215549&r1=215548&r2=215549&view=diff
==============================================================================
--- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
+++ cfe/trunk/lib/Format/TokenAnnotator.cpp Wed Aug 13 09:00:41 2014
@@ -701,8 +701,11 @@ private:
for (FormatToken *Previous = Current.Previous;
Previous && !Previous->isOneOf(tok::comma, tok::semi);
Previous = Previous->Previous) {
- if (Previous->isOneOf(tok::r_square, tok::r_paren))
+ if (Previous->isOneOf(tok::r_square, tok::r_paren)) {
Previous = Previous->MatchingParen;
+ if (!Previous)
+ break;
+ }
if ((Previous->Type == TT_BinaryOperator ||
Previous->Type == TT_UnaryOperator) &&
Previous->isOneOf(tok::star, tok::amp)) {
Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=215549&r1=215548&r2=215549&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Wed Aug 13 09:00:41 2014
@@ -9200,5 +9200,9 @@ TEST_F(FormatTest, DisableRegions) {
" int k;"));
}
+TEST_F(FormatTest, DoNotCrashOnInvalidInput) {
+ format("? ) =");
+}
+
} // end namespace tooling
} // end namespace clang
More information about the cfe-commits
mailing list