jingham added inline comments.
================ Comment at: lldb/source/Plugins/Language/ObjC/Cocoa.cpp:278 + && descriptor->GetTaggedPointerInfo(nullptr, nullptr, &payload)) { + count = __builtin_popcountll(payload); + break; ---------------- bulbazord wrote: > I'm pretty sure `__builtin_popcount` and friends are GNU extensions not > supported by MSVC. You'll probably need to abstract this out with C > preprocessor macro guards. > > Alternatively, I think llvm has its own `popcount` implementation with > `llvm::popcount` in `include/llvm/ADT/bit.h`. Good catch. The llvm one is just a wrapper for the builtin when available and a by-hand version otherwise, so might as well use that one. ================ Comment at: lldb/source/Plugins/Language/ObjC/Cocoa.cpp:294 + // This is the bitfield case. The bitfield is a uint64_t: + count = process_sp->ReadUnsignedIntegerFromMemory( + valobj_addr + 2 * ptr_size, 8, 0, error); ---------------- mib wrote: > Do we want to overwrite the `count` read previously ? This code was originally written by Sean, who loved to write any code with complex logic in the form: do { /// Complex Logic here } while (0); so that he could exit the whole construct with a "break". After we get the bit mask value from the tagged pointer we `break` which sends us immediately to line 343. So that setting and this one are on non-intersecting code paths. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D157022/new/ https://reviews.llvm.org/D157022 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits