labath accepted this revision. labath added a comment. Looks good, apart from some stylistic comments inline. Thank you for taking the time to do this right.
================ Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3545 + +DIEVector MergeBlockAbstractParameters(const DWARFDIE &block_die, + DIEVector &&variable_dies) { ---------------- In llvm, we prefer `static` functions over anonymous namespaces. Theoretically, you could keep the anonymous namespace around the using declaration (per <https://llvm.org/docs/CodingStandards.html#anonymous-namespaces>, as those can't use `static`), though I would actually probably prefer DIEArray type defined in DIERef.h over a custom type. ================ Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3588 + concrete_it->GetReferencedDIE(DW_AT_abstract_origin); + if (origin_of_concrete && origin_of_concrete == abstract_child) { + // The current abstract paramater is the origin of the current ---------------- I would assume this is redundant, as an invalid DIE will never match `abstract_child`. ================ Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h:402 + const lldb_private::SymbolContext &sc, + const llvm::SmallVectorImpl<DWARFDIE> &variable_dies, + const lldb::addr_t func_low_pc); ---------------- When you're not mutating the vector, the usual argument type is `ArrayRef<T>` ================ Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h:403 + const llvm::SmallVectorImpl<DWARFDIE> &variable_dies, + const lldb::addr_t func_low_pc); ---------------- We generally do not put a const qualifier on by-value arguments (it's pretty useless). (I see it's present on other functions too, but I don't know if they were introduced by you or you're just propagating them.) ================ Comment at: lldb/test/API/functionalities/unused-inlined-parameters/TestUnusedInlinedParameters.py:17 + + # For the unused parameters, only check the types. + self.assertEqual("void *", self.frame().FindVariable("unused1").GetType().GetName()) ---------------- jarin wrote: > labath wrote: > > Maybe we could check something else as well... Do `GetDescription` or > > `str(value)` return something reasonable here? > Actually, the most important thing is the type here, so this was quite > deliberate. > > GetDescription returns `(void *) unused1 = <no location, value may have been > optimized out>\n\n`, but I am not sure if we can safely require that all > future versions/platforms optimize the parameter out. I don't feel strongly about it, but I would say that this function is so simple than any optimizer worthy of that name should be able to optimize those arguments away. I might replace printf with a `noinline`/`optnone` function though, to avoid any libc shenanigans. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D110571/new/ https://reviews.llvm.org/D110571 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits