spyffe added a comment. Added a few inline comments to make the patch's intent more understandable.
================ Comment at: include/lldb/Symbol/ClangASTContext.h:1221 @@ -1220,3 +1214,2 @@ bool m_can_evaluate_expressions; - std::map<void *, std::shared_ptr<void>> m_decl_objects; // clang-format on ---------------- We remove this map and all accessors to it because its only purpose was the lookup that's been replaced. ================ Comment at: source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:1262 @@ -1261,2 +1261,3 @@ for (CompilerDecl decl : found_decls) { + for (size_t vi = 0, ve = vars->GetSize(); vi != ve; ++vi) ---------------- Here, we already have a list of variables in scope with the right name (returned from `GetInScopeVariableList()`). So we just have to pick the one with the right `VarDecl`. If there are any other variables that aren't in that list that we need to consider, this is something we need to know about. ================ Comment at: source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp:3610 @@ -3609,1 +3609,3 @@ } + + if (DWARFDIE abstract_origin_die = die.GetReferencedDIE(DW_AT_abstract_origin)) ---------------- The point of this code is to ensure that the variables are not duplicated. There is only one `FunctionDecl`, so there needs to be only one `VarDecl`, the one for the abstract origin. Otherwise the `FunctionDecl` contains multiple variables with the same name, messing up lookup. Repository: rL LLVM http://reviews.llvm.org/D20395 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits