================ @@ -93,34 +87,31 @@ class ClangASTNodesEmitter { // Called recursively to ensure that nodes remain contiguous std::pair<ASTNode, ASTNode> ClangASTNodesEmitter::EmitNode(raw_ostream &OS, ASTNode Base) { - std::string BaseName = macroName(std::string(Base.getName())); + std::string BaseName = macroName(Base.getName()); - ChildIterator i = Tree.lower_bound(Base), e = Tree.upper_bound(Base); - bool HasChildren = (i != e); + auto [II, E] = Tree.equal_range(Base); + bool HasChildren = II != E; ASTNode First, Last; if (!Base.isAbstract()) First = Last = Base; - auto comp = [this](ASTNode LHS, ASTNode RHS) { - auto LHSPrioritized = PrioritizedClasses.count(LHS) > 0; - auto RHSPrioritized = PrioritizedClasses.count(RHS) > 0; - if (LHSPrioritized && !RHSPrioritized) - return true; - if (!LHSPrioritized && RHSPrioritized) - return false; - + auto Comp = [this](const ASTNode &LHS, const ASTNode &RHS) { + bool LHSPrioritized = PrioritizedClasses.count(LHS) > 0; + bool RHSPrioritized = PrioritizedClasses.count(RHS) > 0; + if (LHSPrioritized != RHSPrioritized) + return LHSPrioritized < RHSPrioritized; ---------------- AaronBallman wrote:
Didn't the logic here change? Assume `LHS` is true and `RHS` is false, it used to be: ``` if (true && !false) return true; ``` and now it's ``` if (true != false) return true < false; // which is false ``` https://github.com/llvm/llvm-project/pull/108580 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits