case tok::pp_warning:
parseWarningOrError();
break;
+ case tok::pp_if:
+ case tok::pp_elif:
+ parseLine();
+ break;
default:
break;
}
llvm::errs() << " M=" << Tok->MustBreakBefore
<< " C=" << Tok->CanBreakBefore << " T=" << Tok->Type
<< " S=" << Tok->SpacesRequiredBefore
+ << " P=" << Tok->SplitPenalty
<< " Name=" << Tok->FormatTok.Tok.getName() << " FakeLParens=";
for (unsigned i = 0, e = Tok->FakeLParens.size(); i != e; ++i)
llvm::errs() << Tok->FakeLParens[i] << "/";
EXPECT_EQ("#warning 1", format(" # warning 1"));
}
+TEST_F(FormatTest, FormatHashIfExpressions) {
+ // FIXME: Come up with a better indentation for #elif.
+ verifyFormat(
+ "#if !defined(AAAAAAA) && (defined CCCCCC || defined DDDDDD) && \\\n"
+ " defined(BBBBBBBB)\n"
+ "#elif !defined(AAAAAA) && (defined CCCCC || defined DDDDDD) && \\\n"
+ " defined(BBBBBBBB)\n"
+ "#endif",
+ getLLVMStyleWithColumns(65));
+}
+
TEST_F(FormatTest, MergeHandlingInTheFaceOfPreprocessorDirectives) {
FormatStyle AllowsMergedIf = getGoogleStyle();
AllowsMergedIf.AllowShortIfStatementsOnASingleLine = true;