labath added a subscriber: zturner. labath added inline comments.
================ Comment at: lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp:110 + +static std::string findPdbFile(const llvm::StringRef exe_path, const llvm::StringRef pdb_file, llvm::file_magic &magic) { + auto ec = llvm::identify_magic(pdb_file, magic); ---------------- zloyrobot wrote: > labath wrote: > > I find the interface of this function odd. First, the `const`s on the > > StringRef argument are useless and should be removed. Secondly, the by-ref > > return of the `magic` argument is something that would be nice to avoid. It > > looks like that could easily be done here by just checking whether the file > > exists and doing the identify_magic check in the caller (if you want an > > existing-but-not-pdb file to abort the search), or by checking the > > signature in this function (if you want to skip past non-pdb files). Also, > > this patch could use clang-formatting as this line is over the column limit. > I want to skip past non-pdb files. Am I understand correctly that you suggest > me to get rid of file_magic parameter and call identify_magic (open and read > pdb file) additional time (in caller)? In that case, what you could do is get rid of the `magic` as an argument, and change this function to return a valid result, only if you found the file *and* that files magic number is correct. (note that this is not what the current implementation does) ================ Comment at: lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp:111 +static std::string findPdbFile(const llvm::StringRef exe_path, const llvm::StringRef pdb_file, llvm::file_magic &magic) { + auto ec = llvm::identify_magic(pdb_file, magic); + if (!ec) ---------------- zloyrobot wrote: > labath wrote: > > Llvm policy is to use `auto` "if and only if it makes the code more > > readable" > > <http://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable>. > > Whether that's the case here is somewhat subjective, but I'd say that none > > of the uses of auto in this patch are helping readability, as all the types > > used in this patch are short enough and spelling them out saves the reader > > from guessing whether `ec` really is a `std::error_code`, etc. > Please note that I moved ```auto ec = ...``` from original Turner's code yeah, I know, but that doesn't make it right. :) In fact, based on a random sample, I would guess that about 90% of uses of `auto ec` in llvm is @zturner's code. :P TBH, the `ec` is no the part I'm having problems with the most. If it was just that, I wouldn't mention it, but the fact that you're using it all over the place tells me you weren't aware of llvm's policy regarding `auto` (which explicitly states "don't 'almost always use auto'"), and I figured it's best to mention that early on. Repository: rLLDB LLDB CHANGES SINCE LAST ACTION https://reviews.llvm.org/D60962/new/ https://reviews.llvm.org/D60962 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits