teak-llvm/lldb/packages/Python/lldbsuite/test/expression_command/call-overridden-method/main.cpp
Lang Hames 48b32f4ced [lldb] Fix some C++ virtual method call bugs in LLDB expression evaluation by
building method override tables for CXXMethodDecls in 
DWARFASTParserClang::CompleteTypeFromDWARF.

C++ virtual method calls in LLDB expressions may fail if the override table for
the method being called is not correct as IRGen will produce references to the
wrong (or a missing) vtable entry.

This patch does not fix calls to virtual methods with covariant return types as
it mistakenly treats these as overloads, rather than overrides. This will be
addressed in a future patch.

Review: https://reviews.llvm.org/D41997

Partially fixes <rdar://problem/14205774>

llvm-svn: 323163
2018-01-22 23:53:56 +00:00

17 lines
215 B
C++

class Base {
public:
virtual ~Base() {}
virtual void foo() {}
};
class Derived : public Base {
public:
virtual void foo() {}
};
int main() {
Derived d;
Base *b = &d;
return 0; // Set breakpoint here
}