[PATCH] D100378: [AST] Use IntrusiveRefCntPtr for Introspection LocationCall.
David Blaikie via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Apr 14 00:46:21 PDT 2021
dblaikie added inline comments.
================
Comment at: clang/lib/Tooling/NodeIntrospection.cpp:60
+ if (LHS.first == RHS.first)
+ return LHS.second->name() < RHS.second->name();
+ return LHS.first < RHS.first;
----------------
njames93 wrote:
> dblaikie wrote:
> > njames93 wrote:
> > > This is a slight change in behaviour, The old implementation used the operator< on a `std::shared_ptr`.
> > > That in turns boils down to a comparison on the raw pointer, which is less than ideal.
> > Why is that less than ideal? Does the ordering need to be stable?
> It's not strictly necessary that the ordering is stable. but when printing the contents of the map it would be nice if there was some obvious ordering. This also (partially) mimics the behaviour of the comparison for `std::pair<SourceRange, SharedLocationCall>`.
seems like a strange tradeoff to me for the LLVM codebase - we have lots of unstable maps & don't try to make them nicer for printing - especially if that would come at any performance cost, like doing string comparisons.
Does the SourceRange+SharedLocationCall need stability?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100378/new/
https://reviews.llvm.org/D100378
More information about the cfe-commits
mailing list