Author: djasper
Date: Sat Sep 17 02:20:36 2016
New Revision: 281816

URL: http://llvm.org/viewvc/llvm-project?rev=281816&view=rev
Log:
clang-format: [JS] Fix a crash in handledTemplateStrings.

Modified:
    cfe/trunk/lib/Format/FormatTokenLexer.cpp
    cfe/trunk/unittests/Format/FormatTestJS.cpp

Modified: cfe/trunk/lib/Format/FormatTokenLexer.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/FormatTokenLexer.cpp?rev=281816&r1=281815&r2=281816&view=diff
==============================================================================
--- cfe/trunk/lib/Format/FormatTokenLexer.cpp (original)
+++ cfe/trunk/lib/Format/FormatTokenLexer.cpp Sat Sep 17 02:20:36 2016
@@ -235,6 +235,8 @@ void FormatTokenLexer::handleTemplateStr
     return;
   }
   if (BacktickToken->is(tok::r_brace)) {
+    if (StateStack.size() == 1)
+      return;
     StateStack.pop();
     if (StateStack.top() != LexerState::TEMPLATE_STRING)
       return;

Modified: cfe/trunk/unittests/Format/FormatTestJS.cpp
URL: 
http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTestJS.cpp?rev=281816&r1=281815&r2=281816&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTestJS.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTestJS.cpp Sat Sep 17 02:20:36 2016
@@ -1253,6 +1253,9 @@ TEST_F(FormatTestJS, NestedTemplateStrin
   verifyFormat(
       "var x = `<ul>${xs.map(x => `<li>${x}</li>`).join('\\n')}</ul>`;");
   verifyFormat("var x = `he${({text: 'll'}.text)}o`;");
+
+  // Crashed at some point.
+  verifyFormat("}");
 }
 
 TEST_F(FormatTestJS, TaggedTemplateStrings) {


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to