clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.
Sean was the person with the most experience working on the expression parser
and he wrote the clang AST importer, but Jim is now the expression parser
expert. Jim: and ideas on how this really should be fixed?
Comment at: source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp:182-184
+ // The type we retrieve from the PCM debug info needs to be
+ // complete, otherwise we might crash when trying to extend it.
+ if (!type || !GetClangASTImporter().CompleteType(type))
We typically should never need to do the completion of a type manually like
this. Many times we have variables that are like "foo *". For this variable, we
might never need to complete the type since it is only a pointer. Furthermore,
always completing a type will make LLDB very slow as every type we touch is now
completing as soon as we import it. So while this patch might work, it will
really affect LLDB performance. I think the right fix is probably elsewhere
where someone isn't checking if the type is complete before doing the work that
lldb-commits mailing list