Skip to content

[libc][fuzz] workaround gcc's constexpr capture issue in sort fuzzer #121684

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Merged
merged 1 commit into from
Jan 5, 2025

Conversation

SchrodingerZhu
Copy link
Contributor

@SchrodingerZhu SchrodingerZhu commented Jan 5, 2025

@llvmbot llvmbot added the libc label Jan 5, 2025
@llvmbot
Copy link
Member

llvmbot commented Jan 5, 2025

@llvm/pr-subscribers-libc

Author: Schrodinger ZHU Yifan (SchrodingerZhu)

Changes

Fix the build problem at https://lab.llvm.org/buildbot/#/builders/131/builds/13255


Full diff: https://github.com/llvm/llvm-project/pull/121684.diff

1 Files Affected:

  • (modified) libc/test/src/stdlib/SortingTest.h (+4-1)
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;
       }

@Voultapher
Copy link
Contributor

Thanks LGTM.

@lntue lntue merged commit de7f531 into llvm:main Jan 5, 2025
13 checks passed
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants