[Lldb-commits] [PATCH] D134066: [LLDB][NativePDB] Forcefully complete a record type if it has empty debug info and is required to have complete type.

Zequan Wu via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 4 17:56:07 PDT 2022


zequanwu marked an inline comment as done.
zequanwu added inline comments.


================
Comment at: lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp:96
   CompilerType method_ct = m_ast_builder.ToCompilerType(method_qt);
-  lldb::opaque_compiler_type_t derived_opaque_ty = m_derived_ct.GetOpaqueQualType();
+  PdbAstBuilder::RequireCompleteType(method_ct);
+  lldb::opaque_compiler_type_t derived_opaque_ty =
----------------
zequanwu wrote:
> labath wrote:
> > I suppose this won't hurt, but `RequireCompleteType` will not actually do anything for method types, right ?
> > 
> > Regarding method types, there is a slightly different problem. C++ rules require that in code like
> > `struct B1 { virtual A1* f(); }; struct B2:B1 { A2* f(); };`, the types `A1` and `A2` must be complete (because that code is only valid if A1 is a base of A2). However, I think that's better left to a separate patch.
> > I suppose this won't hurt, but RequireCompleteType will not actually do anything for method types, right ?
> Yeah, it should do nothing. I just replaced all occurrence of CompleteType with RequireCompleteType.
> Regarding method types, there is a slightly different problem. C++ rules require that in code like
> struct B1 { virtual A1* f(); }; struct B2:B1 { A2* f(); };, the types A1 and A2 must be complete (because that code is only valid if A1 is a base of A2). However, I think that's better left to a separate patch.

I tried this example. It crashed and reminds me of a similar crash stack I seen at https://bugs.chromium.org/p/chromium/issues/detail?id=1359144#c4. I tried to call `PdbAstBuilder::RequireCompleteType` with the method return type, still not working. Not sure what's missing.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134066/new/

https://reviews.llvm.org/D134066



More information about the lldb-commits mailing list