clang-format: Fix assertion when trying to build a nullptr StringRef.
authorDaniel Jasper <djasper@google.com>
Mon, 19 Jan 2015 10:51:05 +0000 (10:51 +0000)
committerDaniel Jasper <djasper@google.com>
Mon, 19 Jan 2015 10:51:05 +0000 (10:51 +0000)
llvm-svn: 226448

clang/lib/Format/UnwrappedLineParser.cpp
clang/unittests/Format/FormatTest.cpp

index 00dc1bd..23b9d55 100644 (file)
@@ -549,6 +549,7 @@ void UnwrappedLineParser::conditionalCompilationEnd() {
 void UnwrappedLineParser::parsePPIf(bool IfDef) {
   nextToken();
   bool IsLiteralFalse = (FormatTok->Tok.isLiteral() &&
+                         FormatTok->Tok.getLiteralData() != nullptr &&
                          StringRef(FormatTok->Tok.getLiteralData(),
                                    FormatTok->Tok.getLength()) == "0") ||
                         FormatTok->Tok.is(tok::kw_false);
index 5f8fba2..7987e58 100644 (file)
@@ -2600,6 +2600,7 @@ TEST_F(FormatTest, MacroDefinitionsWithIncompleteCode) {
                "    y)), // expected-warning",
                getLLVMStyleWithColumns(28));
   verifyFormat("#d, = };");
+  verifyFormat("#if \"a");
 }
 
 TEST_F(FormatTest, MacrosWithoutTrailingSemicolon) {