[PATCH] D135972: [clang-format] Don't crash on malformed preprocessor conditions
sstwcw via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Oct 23 14:58:11 PDT 2022
sstwcw marked 2 inline comments as done.
sstwcw added inline comments.
================
Comment at: clang/unittests/Format/FormatTest.cpp:5196-5206
+ std::function<void(std::string, unsigned)> FormatBadBranches =
+ [&](std::string Prefix, unsigned Lines) {
+ const std::string Directives[] = {"", "#if X\n", "#else X\n",
+ "#endif\n"};
+ if (Lines == 0)
+ verifyNoCrash(Prefix);
+ else
----------------
owenpan wrote:
> Can we have individual `verifyFormat` or `verifyNoCrash`tests for easy reading and to avoid the overhead? Some examples:
> ```
> #else
> a;
> #if X
> b;
> #endif
> #endif
>
> #elif X
> a;
> #endif
> #ifdef X
> b;
> #endif
> ```
I added some tests like the examples. But I kept the generated cases. I feel more secure that way. At first I only found the bug because of the generated cases. As for overhead, the debug build of this test took 1.6s on my laptop.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D135972/new/
https://reviews.llvm.org/D135972
More information about the cfe-commits
mailing list