[Lldb-commits] [lldb] 672f82a - [lldb][test] TestExprDefinitionInDylib.py: add cases for calling ctors
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 8 04:12:37 PDT 2025
Author: Michael Buch
Date: 2025-08-08T12:12:25+01:00
New Revision: 672f82a2ef82d26f2bff024300c4658ab593c93f
URL: https://github.com/llvm/llvm-project/commit/672f82a2ef82d26f2bff024300c4658ab593c93f
DIFF: https://github.com/llvm/llvm-project/commit/672f82a2ef82d26f2bff024300c4658ab593c93f.diff
LOG: [lldb][test] TestExprDefinitionInDylib.py: add cases for calling ctors
Added:
Modified:
lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py
lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.cpp
lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.h
lldb/test/API/lang/cpp/expr-definition-in-dylib/main.cpp
Removed:
################################################################################
diff --git a/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py b/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py
index 02c34b3132722..70d7fd096c7cf 100644
--- a/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py
+++ b/lldb/test/API/lang/cpp/expr-definition-in-dylib/TestExprDefinitionInDylib.py
@@ -31,3 +31,10 @@ def test(self):
)
self.expect_expr("f.method()", result_value="-72", result_type="int")
+ self.expect_expr("Foo()", result_type="Foo")
+
+ # FIXME: mangled name lookup for ABI-tagged ctors fails because
+ # the debug-info AST doesn't have ABI-tag information.
+ self.expect(
+ "expr Bar()", error=True, substrs=["error: Couldn't look up symbols"]
+ )
diff --git a/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.cpp b/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.cpp
index ad148cebb00d1..1a08817f5cda1 100644
--- a/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.cpp
+++ b/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.cpp
@@ -1,3 +1,13 @@
#include "lib.h"
+#include <cstdio>
+
int Foo::method() { return -72; }
+
+Foo::Foo() { std::puts(__func__); }
+
+Foo::~Foo() { std::puts(__func__); }
+
+Bar::Bar() { std::puts(__func__); }
+
+Bar::~Bar() { std::puts(__func__); }
diff --git a/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.h b/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.h
index 9568db2166ec4..5ec227946cba0 100644
--- a/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.h
+++ b/lldb/test/API/lang/cpp/expr-definition-in-dylib/lib.h
@@ -3,6 +3,13 @@
struct Foo {
int method();
+ Foo();
+ ~Foo();
+};
+
+struct Bar {
+ [[gnu::abi_tag("Ctor")]] Bar();
+ [[gnu::abi_tag("Dtor")]] ~Bar();
};
#endif // LIB_H_IN
diff --git a/lldb/test/API/lang/cpp/expr-definition-in-dylib/main.cpp b/lldb/test/API/lang/cpp/expr-definition-in-dylib/main.cpp
index 2fddb2b7b3e74..4d6bece21ecac 100644
--- a/lldb/test/API/lang/cpp/expr-definition-in-dylib/main.cpp
+++ b/lldb/test/API/lang/cpp/expr-definition-in-dylib/main.cpp
@@ -2,5 +2,6 @@
int main() {
Foo f;
+ Bar b;
return f.method();
}
More information about the lldb-commits
mailing list