[libc-commits] [libc] [libc][fuzz] workaround gcc's constexpr capture issue in sort fuzzer (PR #121684)

Schrodinger ZHU Yifan via libc-commits libc-commits at lists.llvm.org
Sun Jan 5 00:47:01 PST 2025


https://github.com/SchrodingerZhu created https://github.com/llvm/llvm-project/pull/121684

None

>From 8a48072ba539debcc88e221ff28be2e59950d2da Mon Sep 17 00:00:00 2001
From: schrodingerzhu <i at zhuyi.fan>
Date: Sun, 5 Jan 2025 16:45:08 +0800
Subject: [PATCH] [libc][fuzz] workaround gcc's constexpr capture issue in sort
 fuzzer

---
 libc/test/src/stdlib/SortingTest.h | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/libc/test/src/stdlib/SortingTest.h b/libc/test/src/stdlib/SortingTest.h
index 034c0e4f1fd01d..611206ed708d25 100644
--- a/libc/test/src/stdlib/SortingTest.h
+++ b/libc/test/src/stdlib/SortingTest.h
@@ -301,7 +301,10 @@ class SortingTest : public LIBC_NAMESPACE::testing::Test {
     // incorrect association between alignment and element size.
     alignas(1) uint8_t buf[BUF_SIZE];
 
-    const auto fill_buf = [&buf](size_t elem_size) {
+    // GCC still requires capturing the constant ARRAY_INITIAL_VALS in the
+    // lambda hence, let's use & to implicitly capture all needed variables
+    // automatically.
+    const auto fill_buf = [&](size_t elem_size) {
       for (size_t i = 0; i < BUF_SIZE; ++i) {
         buf[i] = 0;
       }



More information about the libc-commits mailing list