[libc-commits] [libc] [libc] Implement `search/lsearch` (PR #131431)
Connector Switch via libc-commits
libc-commits at lists.llvm.org
Mon Mar 17 10:13:21 PDT 2025
================
@@ -0,0 +1,39 @@
+//===-- Implementation of lsearch -------------------------------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "src/search/lsearch.h"
+#include "src/__support/CPP/cstddef.h" // cpp::byte
+#include "src/__support/common.h"
+#include "src/__support/macros/config.h"
+#include "src/__support/memory_size.h"
+#include "src/string/memory_utils/inline_memcpy.h"
+
+namespace LIBC_NAMESPACE_DECL {
+LLVM_LIBC_FUNCTION(void *, lsearch,
+ (const void *key, void *base, size_t *nmemb, size_t size,
+ int (*compar)(const void *, const void *))) {
+ if (key == nullptr || base == nullptr || nmemb == nullptr ||
+ compar == nullptr)
+ return nullptr;
+
+ size_t byte_len = 0;
+ if (internal::mul_overflow(*nmemb, size, &byte_len))
+ return nullptr;
----------------
c8ef wrote:
Done.
https://github.com/llvm/llvm-project/pull/131431
More information about the libc-commits
mailing list