labath created this revision.
labath added reviewers: teemperor, JDevlieghere.
Herald added a project: LLDB.
labath added a parent revision: D70721: [lldb/cpluspluslanguage] Add
constructor substitutor.
This was causing problems on linux, where we'd end up calling the
deleting destructor instead of a regular one (because they have the same
demangled name), making a lot of mischief in the process.
The only place where this was necessary (according to the test suite, at
least) was to call a base structor instead of a complete one, but this
is now handled in a more targeted fashion.
TestCallOverriddenMethod is now re-enabled as it now passes reliably.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D70722
Files:
lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
lldb/source/Expression/IRExecutionUnit.cpp
Index: lldb/source/Expression/IRExecutionUnit.cpp
===================================================================
--- lldb/source/Expression/IRExecutionUnit.cpp
+++ lldb/source/Expression/IRExecutionUnit.cpp
@@ -728,8 +728,6 @@
if (best_alternate_mangled_name) {
CPP_specs.push_back(best_alternate_mangled_name);
}
-
- CPP_specs.push_back(SearchSpec(demangled,
lldb::eFunctionNameTypeFull));
}
}
Index:
lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
===================================================================
---
lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
+++
lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
@@ -63,7 +63,6 @@
# a vtable entry that does not exist in the compiled program).
self.expect("expr d.foo()", substrs=["2"])
- @skipIfLinux # Calling constructor causes SIGABRT
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr43707")
def test_call_on_temporary(self):
"""Test calls to overridden methods in derived classes."""
Index: lldb/source/Expression/IRExecutionUnit.cpp
===================================================================
--- lldb/source/Expression/IRExecutionUnit.cpp
+++ lldb/source/Expression/IRExecutionUnit.cpp
@@ -728,8 +728,6 @@
if (best_alternate_mangled_name) {
CPP_specs.push_back(best_alternate_mangled_name);
}
-
- CPP_specs.push_back(SearchSpec(demangled, lldb::eFunctionNameTypeFull));
}
}
Index: lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
+++ lldb/packages/Python/lldbsuite/test/commands/expression/call-overridden-method/TestCallOverriddenMethod.py
@@ -63,7 +63,6 @@
# a vtable entry that does not exist in the compiled program).
self.expect("expr d.foo()", substrs=["2"])
- @skipIfLinux # Calling constructor causes SIGABRT
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr43707")
def test_call_on_temporary(self):
"""Test calls to overridden methods in derived classes."""
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits