[libc-commits] [PATCH] D130760: [libc][NFC] Use STL case for functional

Guillaume Chatelet via Phabricator via libc-commits libc-commits at lists.llvm.org
Fri Jul 29 05:12:14 PDT 2022


gchatelet created this revision.
gchatelet added a reviewer: sivachandra.
Herald added subscribers: libc-commits, ecnelises, tschuett.
Herald added projects: libc-project, All.
gchatelet requested review of this revision.

Migrating all private STL code to the standard STL case but keeping it under the CPP namespace to avoid confusion.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D130760

Files:
  libc/src/__support/CPP/Functional.h
  libc/src/__support/CPP/functional.h
  libc/test/src/__support/OSUtil/linux/x86_64/syscall_test.cpp


Index: libc/test/src/__support/OSUtil/linux/x86_64/syscall_test.cpp
===================================================================
--- libc/test/src/__support/OSUtil/linux/x86_64/syscall_test.cpp
+++ libc/test/src/__support/OSUtil/linux/x86_64/syscall_test.cpp
@@ -6,7 +6,7 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "src/__support/CPP/Functional.h"
+#include "src/__support/CPP/functional.h"
 #include "src/__support/OSUtil/syscall.h"
 #include "utils/UnitTest/Test.h"
 
@@ -14,30 +14,30 @@
   // We only do a signature test here. Actual functionality tests are
   // done by the unit tests of the syscall wrappers like mmap.
 
-  using __llvm_libc::cpp::Function;
+  using __llvm_libc::cpp::function;
 
-  Function<long(long)> f([](long n) { return __llvm_libc::syscall(n); });
-  Function<long(long, long)> f1(
+  function<long(long)> f([](long n) { return __llvm_libc::syscall(n); });
+  function<long(long, long)> f1(
       [](long n, long a1) { return __llvm_libc::syscall(n, a1); });
-  Function<long(long, long, long)> f2(
+  function<long(long, long, long)> f2(
       [](long n, long a1, long a2) { return __llvm_libc::syscall(n, a1, a2); });
-  Function<long(long, long, long, long)> f3(
+  function<long(long, long, long, long)> f3(
       [](long n, long a1, long a2, long a3) {
         return __llvm_libc::syscall(n, a1, a2, a3);
       });
-  Function<long(long, long, long, long, long)> f4(
+  function<long(long, long, long, long, long)> f4(
       [](long n, long a1, long a2, long a3, long a4) {
         return __llvm_libc::syscall(n, a1, a2, a3, a4);
       });
-  Function<long(long, long, long, long, long, long)> f5(
+  function<long(long, long, long, long, long, long)> f5(
       [](long n, long a1, long a2, long a3, long a4, long a5) {
         return __llvm_libc::syscall(n, a1, a2, a3, a4, a5);
       });
-  Function<long(long, long, long, long, long, long, long)> f6(
+  function<long(long, long, long, long, long, long, long)> f6(
       [](long n, long a1, long a2, long a3, long a4, long a5, long a6) {
         return __llvm_libc::syscall(n, a1, a2, a3, a4, a5, a6);
       });
 
-  Function<long(long, void *)> not_long_type(
+  function<long(long, void *)> not_long_type(
       [](long n, void *a1) { return __llvm_libc::syscall(n, a1); });
 }
Index: libc/src/__support/CPP/functional.h
===================================================================
--- libc/src/__support/CPP/functional.h
+++ libc/src/__support/CPP/functional.h
@@ -12,16 +12,16 @@
 namespace __llvm_libc {
 namespace cpp {
 
-template <typename Func> class Function;
+template <typename F> class function;
 
-template <typename Ret, typename... Params> class Function<Ret(Params...)> {
-  Ret (*func)(Params...) = nullptr;
+template <typename R, typename... Args> class function<R(Args...)> {
+  R (*func)(Args...) = nullptr;
 
 public:
-  constexpr Function() = default;
-  template <typename Func> constexpr Function(Func &&f) : func(f) {}
+  constexpr function() = default;
+  template <typename F> constexpr function(F &&f) : func(f) {}
 
-  constexpr Ret operator()(Params... params) { return func(params...); }
+  constexpr R operator()(Args... params) { return func(params...); }
 };
 
 } // namespace cpp


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130760.448591.patch
Type: text/x-patch
Size: 3291 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20220729/9aa7d311/attachment-0001.bin>


More information about the libc-commits mailing list