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

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Mar 21 13:35:16 PDT 2019


teemperor marked 2 inline comments as done.
teemperor 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));
----------------
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).


================
Comment at: lldb/source/Symbol/StdModuleHandler.cpp:221
+      QualType our_type = m_importer.Import(arg.getAsType());
+      imported_args.push_back(TemplateArgument(our_type));
+      break;
----------------
balazske wrote:
> I do not know if it is possible that the type to be imported here can have back-references to the template object that is currently imported (for example a vector of vectors?). If yes this case may not work correctly.
We first import the argument and then do a lookup, so that works fine. I added a test for this now. Thanks a lot for heads up!


Repository:
  rLLDB LLDB

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

https://reviews.llvm.org/D59537





More information about the lldb-commits mailing list