From: Daniel Jasper Date: Sat, 17 Sep 2016 07:20:36 +0000 (+0000) Subject: clang-format: [JS] Fix a crash in handledTemplateStrings. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=72aeae9a2f042f160e700b97fde61be3e0adc133;p=clang clang-format: [JS] Fix a crash in handledTemplateStrings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281816 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/FormatTokenLexer.cpp b/lib/Format/FormatTokenLexer.cpp index 8c795fb4d6..c9670aeff6 100644 --- a/lib/Format/FormatTokenLexer.cpp +++ b/lib/Format/FormatTokenLexer.cpp @@ -235,6 +235,8 @@ void FormatTokenLexer::handleTemplateStrings() { return; } if (BacktickToken->is(tok::r_brace)) { + if (StateStack.size() == 1) + return; StateStack.pop(); if (StateStack.top() != LexerState::TEMPLATE_STRING) return; diff --git a/unittests/Format/FormatTestJS.cpp b/unittests/Format/FormatTestJS.cpp index 528986a0c9..9ccb75b629 100644 --- a/unittests/Format/FormatTestJS.cpp +++ b/unittests/Format/FormatTestJS.cpp @@ -1253,6 +1253,9 @@ TEST_F(FormatTestJS, NestedTemplateStrings) { verifyFormat( "var x = ``;"); verifyFormat("var x = `he${({text: 'll'}.text)}o`;"); + + // Crashed at some point. + verifyFormat("}"); } TEST_F(FormatTestJS, TaggedTemplateStrings) {