https://github.com/Michael137 updated 
https://github.com/llvm/llvm-project/pull/147701

>From 4045243ed2f069eed0ef1de5c07d2a633c248225 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuc...@gmail.com>
Date: Wed, 9 Jul 2025 13:20:04 +0100
Subject: [PATCH 1/3] [lldb][test] Move std::function from libcxx to generic
 directory

This just moves the test from `libcxx` to `generic`. There are currently no 
`std::function` formatters for libstdc++ so I didn't add a test-case for it.

Split out from https://github.com/llvm/llvm-project/pull/146740
---
 .../{libcxx => generic}/function/Makefile          |  2 --
 .../function/TestDataFormatterStdFunction.py}      | 14 ++++++++------
 .../{libcxx => generic}/function/main.cpp          |  0
 3 files changed, 8 insertions(+), 8 deletions(-)
 rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx 
=> generic}/function/Makefile (51%)
 rename 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx/function/TestLibCxxFunction.py
 => generic/function/TestDataFormatterStdFunction.py} (92%)
 rename lldb/test/API/functionalities/data-formatter/data-formatter-stl/{libcxx 
=> generic}/function/main.cpp (100%)

diff --git 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile
 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/Makefile
similarity index 51%
rename from 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile
rename to 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/Makefile
index b016f006747da..99998b20bcb05 100644
--- 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/Makefile
+++ 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/Makefile
@@ -1,5 +1,3 @@
 CXX_SOURCES := main.cpp
-CXXFLAGS_EXTRAS := -std=c++11
-USE_LIBCPP := 1
 
 include Makefile.rules
diff --git 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
similarity index 92%
rename from 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
rename to 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
index 80461b996328f..64d704c07c0ae 100644
--- 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/TestLibCxxFunction.py
+++ 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
@@ -2,14 +2,13 @@
 Test lldb data formatter subsystem.
 """
 
-
 import lldb
 from lldbsuite.test.decorators import *
 from lldbsuite.test.lldbtest import *
 from lldbsuite.test import lldbutil
 
 
-class LibCxxFunctionTestCase(TestBase):
+class StdFunctionTestCase(TestBase):
     # Run frame var for a variable twice. Verify we do not hit the cache
     # the first time but do the second time.
     def run_frame_var_check_cache_use(
@@ -34,10 +33,8 @@ def run_frame_var_check_cache_use(
             substrs=["lldb_private::CompileUnit::FindFunction"],
         )
 
-    @add_test_categories(["libc++"])
-    def test(self):
-        """Test that std::function as defined by libc++ is correctly printed 
by LLDB"""
-        self.build()
+    def do_test(self):
+        """Test that std::function is correctly printed by LLDB"""
         self.runCmd("file " + self.getBuildArtifact("a.out"), 
CURRENT_EXECUTABLE_SET)
 
         bkpt = self.target().FindBreakpointByID(
@@ -82,3 +79,8 @@ def test(self):
         self.expect(
             "frame variable f5", substrs=["f5 =  Function = Bar::add_num(int) 
const"]
         )
+
+    @add_test_categories(["libc++"])
+    def test_libcxx(self):
+        self.build(dictionary={"USE_LIBCPP": 1})
+        self.do_test()
diff --git 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
similarity index 100%
rename from 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/function/main.cpp
rename to 
lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp

>From 5c363c15a447b2bcc29fca6cf83a1a08e0590543 Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuc...@gmail.com>
Date: Wed, 9 Jul 2025 15:07:12 +0100
Subject: [PATCH 2/3] fixup! clang-format

---
 .../generic/function/main.cpp                 | 54 ++++++++-----------
 1 file changed, 23 insertions(+), 31 deletions(-)

diff --git 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
index ef7c97470652f..86ab18fd9cc43 100644
--- 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
+++ 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/main.cpp
@@ -1,51 +1,43 @@
 #include <functional>
 
-int foo(int x, int y) {
-  return x + y - 1;
-}
+int foo(int x, int y) { return x + y - 1; }
 
 struct Bar {
-   int operator()() {
-       return 66 ;
-   }
-   int add_num(int i) const { return i + 3 ; }
-   int add_num2(int i) {
-     std::function<int (int)> add_num2_f = [](int x) {
-         return x+1;
-      };
-
-      return add_num2_f(i); // Set break point at this line.
-   }
-} ;
+  int operator()() { return 66; }
+  int add_num(int i) const { return i + 3; }
+  int add_num2(int i) {
+    std::function<int(int)> add_num2_f = [](int x) { return x + 1; };
+
+    return add_num2_f(i); // Set break point at this line.
+  }
+};
 
 int foo2() {
-   auto f = [](int x) {
-       return x+1;
-   };
+  auto f = [](int x) { return x + 1; };
 
-   std::function<int (int)> foo2_f = f;
+  std::function<int(int)> foo2_f = f;
 
-   return foo2_f(10); // Set break point at this line.
+  return foo2_f(10); // Set break point at this line.
 }
 
-int main (int argc, char *argv[])
-{
+int main(int argc, char *argv[]) {
   int acc = 42;
-  std::function<int (int,int)> f1 = foo;
-  std::function<int (int)> f2 = [acc,f1] (int x) -> int {
-    return x+f1(acc,x);
+  std::function<int(int, int)> f1 = foo;
+  std::function<int(int)> f2 = [acc, f1](int x) -> int {
+    return x + f1(acc, x);
   };
 
   auto f = [](int x, int y) { return x + y; };
-  auto g = [](int x, int y) { return x * y; } ;
-  std::function<int (int,int)> f3 =  argc %2 ? f : g ;
+  auto g = [](int x, int y) { return x * y; };
+  std::function<int(int, int)> f3 = argc % 2 ? f : g;
 
-  Bar bar1 ;
-  std::function<int ()> f4( bar1 ) ;
-  std::function<int (const Bar&, int)> f5 = &Bar::add_num;
+  Bar bar1;
+  std::function<int()> f4(bar1);
+  std::function<int(const Bar &, int)> f5 = &Bar::add_num;
 
   int foo2_result = foo2();
   int bar_add_num2_result = bar1.add_num2(10);
 
-  return f1(acc,acc) + f2(acc) + f3(acc+1,acc+2) + f4() + f5(bar1, 10); // Set 
break point at this line.
+  return f1(acc, acc) + f2(acc) + f3(acc + 1, acc + 2) + f4() +
+         f5(bar1, 10); // Set break point at this line.
 }

>From 817e8b489d312944d2dbf8c8e883406df5be98cb Mon Sep 17 00:00:00 2001
From: Michael Buch <michaelbuc...@gmail.com>
Date: Wed, 9 Jul 2025 21:58:39 +0100
Subject: [PATCH 3/3] fixup! adjust line numbers after clang-format

---
 .../generic/function/TestDataFormatterStdFunction.py      | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
index 64d704c07c0ae..f4e0cd2f2b3dc 100644
--- 
a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
+++ 
b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/generic/function/TestDataFormatterStdFunction.py
@@ -53,20 +53,20 @@ def do_test(self):
         )
 
         self.run_frame_var_check_cache_use(
-            "foo2_f", "Lambda in File main.cpp at Line 22"
+            "foo2_f", "Lambda in File main.cpp at Line 16"
         )
 
         lldbutil.continue_to_breakpoint(self.process(), bkpt)
 
         self.run_frame_var_check_cache_use(
-            "add_num2_f", "Lambda in File main.cpp at Line 13"
+            "add_num2_f", "Lambda in File main.cpp at Line 9"
         )
 
         lldbutil.continue_to_breakpoint(self.process(), bkpt)
 
-        self.run_frame_var_check_cache_use("f2", "Lambda in File main.cpp at 
Line 35")
+        self.run_frame_var_check_cache_use("f2", "Lambda in File main.cpp at 
Line 26")
         self.run_frame_var_check_cache_use(
-            "f3", "Lambda in File main.cpp at Line 39", True
+            "f3", "Lambda in File main.cpp at Line 30", True
         )
         # TODO reenable this case when std::function formatter supports
         # general callable object case.

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to