clang-format: Fix crasher caused by incorrect resetting of token info.
llvm-svn: 226685
diff --git a/clang/lib/Format/TokenAnnotator.h b/clang/lib/Format/TokenAnnotator.h
index 8aa163a..f9e1efa 100644
--- a/clang/lib/Format/TokenAnnotator.h
+++ b/clang/lib/Format/TokenAnnotator.h
@@ -75,6 +75,7 @@
FormatToken *Current = First;
while (Current) {
Current->Children.clear();
+ Current->Role.reset();
Current = Current->Next;
}
}
diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index bb8f5bc..553368d 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/unittests/Format/FormatTest.cpp
@@ -2613,6 +2613,7 @@
verifyNoCrash("#if a\na(\n#else\n#endif\n{a");
verifyNoCrash("a={0,1\n#if a\n#else\n;\n#endif\n}");
+ verifyNoCrash("#if a\na(\n#else\n#endif\n) a {a,b,c,d,f,g};");
}
TEST_F(FormatTest, MacrosWithoutTrailingSemicolon) {