[Lldb-commits] [PATCH] D59537: Instantiate 'std' templates explicitly in the expression evaluator

Balázs Kéri via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Mar 22 02:45:38 PDT 2019

balazske added inline comments.

Comment at: lldb/source/Symbol/StdModuleHandler.cpp:220
+    case TemplateArgument::Type: {
+      QualType our_type = m_importer.Import(arg.getAsType());
+      imported_args.push_back(TemplateArgument(our_type));
teemperor wrote:
> balazske wrote:
> > For long-term (but it should be not so long) the `ASTImporter::Import_New` should be used (later the Import_New will become the Import). By using the existing Import_New the code will be prepared for this change. For this to work the error handling (ignore error, return it from Import or something else) must be implemented here.
> Thanks, fixed! I currently just return nothing, which will bring us back to LLDB's normal importing logic (which then maybe does better).
The `TemplateArgument::Integral` case is not fixed yet.

Comment at: lldb/source/Symbol/StdModuleHandler.cpp:212
+      if (!type)
+        return {};
+      imported_args.push_back(TemplateArgument(*type));
This does not work correctly: `llvm::consumeError(type.takeError())` should be called to handle the error, otherwise it will trigger assertion.



More information about the lldb-commits mailing list