[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