[lldb] Complete return types of CXXMethodDecls to prevent crashing due to covariant return types
Summary: Currently we crash in Clang's CodeGen when we call functions with covariant return types with this assert: ``` Assertion failed: (DD && "queried property of class with no definition"), function data, file clang/include/clang/AST/DeclCXX.h, line 433. ``` when calling `clang::CXXRecordDecl::isDerivedFrom` from the `ItaniumVTableBuilder`. Clang seems to assume that the underlying record decls of covariant return types are already completed. This is true during a normal Clang invocation as there the type checker will complete both decls when checking if the overloaded function is valid (i.e., the return types are covariant). When we minimally import our AST into the expression in LLDB we don't do this type checking (which would complete the record decls) and we end up trying to access the invalid record decls from CodeGen which makes us trigger the assert. This patch just completes the underlying types...
parent
a497e1b5
Please register or sign in to comment