clang-tidy: /tmp/LLVM/llvm-project/clang-tools-extra/clang-tidy/modernize/UseIntegerSignComparisonCheck.cpp:123: virtual void clang::tidy::modernize::UseIntegerSignComparisonCheck::check(const clang::ast_matchers::MatchFinder::MatchResult&): Assertion `SignedCastExpression' failed. PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace. Stack dump: 0. Program arguments: /LLVM/LLVM-trunk/bin/clang-tidy -checks=-*,modernize-use-integer-sign-comparison Bug.cc -- -std=c++20 1. parser at end of file 2. ASTMatcher: Processing 'modernize-use-integer-sign-comparison' against: BinaryOperator : --- Bound Nodes Begin --- intComparison - { BinaryOperator : } sIntCastExpression - { CXXMemberCallExpr : } --- Bound Nodes End --- #0 0x0000000004fc3beb llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/LLVM/LLVM-trunk/bin/clang-tidy+0x4fc3beb) #1 0x0000000004fc0c9b SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0 #2 0x00007f30f2e71990 __restore_rt (/lib64/libpthread.so.0+0x12990) #3 0x00007f30f18e052f raise (/lib64/libc.so.6+0x4e52f) #4 0x00007f30f18b3e65 abort (/lib64/libc.so.6+0x21e65) #5 0x00007f30f18b3d39 _nl_load_domain.cold.0 (/lib64/libc.so.6+0x21d39) #6 0x00007f30f18d8e86 (/lib64/libc.so.6+0x46e86) #7 0x0000000000fd200d clang::tidy::modernize::UseIntegerSignComparisonCheck::check(clang::ast_matchers::MatchFinder::MatchResult const&) (/LLVM/LLVM-trunk/bin/clang-tidy+0xfd200d) #8 0x00000000035f5893 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::MatchVisitor::visitMatch(clang::ast_matchers::BoundNodes const&) ASTMatchFinder.cpp:0:0 #9 0x00000000036299fa clang::ast_matchers::internal::BoundNodesTreeBuilder::visitMatches(clang::ast_matchers::internal::BoundNodesTreeBuilder::Visitor*) (/LLVM/LLVM-trunk/bin/clang-tidy+0x36299fa) #10 0x00000000035f6922 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchWithFilter(clang::DynTypedNode const&) ASTMatchFinder.cpp:0:0 #11 0x0000000003615983 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl, llvm::PointerIntPairInfo>>>*) ASTMatchFinder.cpp:0:0 #12 0x0000000003615c26 clang::RecursiveASTVisitor::TraverseContinueStmt(clang::ContinueStmt*, llvm::SmallVectorImpl, llvm::PointerIntPairInfo>>>*) ASTMatchFinder.cpp:0:0 #13 0x0000000003615818 clang::RecursiveASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl, llvm::PointerIntPairInfo>>>*) ASTMatchFinder.cpp:0:0 #14 0x0000000003615ceb clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl, llvm::PointerIntPairInfo>>>*) (.constprop.0) ASTMatchFinder.cpp:0:0 #15 0x000000000361d829 clang::RecursiveASTVisitor::TraverseFunctionHelper(clang::FunctionDecl*) ASTMatchFinder.cpp:0:0 #16 0x00000000036248c3 clang::RecursiveASTVisitor::TraverseCXXMethodDecl(clang::CXXMethodDecl*) ASTMatchFinder.cpp:0:0 #17 0x0000000003611638 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0 #18 0x000000000361171a clang::RecursiveASTVisitor::TraverseDeclContextHelper(clang::DeclContext*) ASTMatchFinder.cpp:0:0 #19 0x0000000003610279 clang::RecursiveASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0 #20 0x0000000003611638 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0 #21 0x000000000361171a clang::RecursiveASTVisitor::TraverseDeclContextHelper(clang::DeclContext*) ASTMatchFinder.cpp:0:0 #22 0x0000000003624b1b clang::RecursiveASTVisitor::TraverseTranslationUnitDecl(clang::TranslationUnitDecl*) ASTMatchFinder.cpp:0:0 #23 0x0000000003611638 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) ASTMatchFinder.cpp:0:0 #24 0x0000000003611c2c clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) (/LLVM/LLVM-trunk/bin/clang-tidy+0x3611c2c) #25 0x00000000022427c0 clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (/LLVM/LLVM-trunk/bin/clang-tidy+0x22427c0) #26 0x0000000002565d6c clang::ParseAST(clang::Sema&, bool, bool) (/LLVM/LLVM-trunk/bin/clang-tidy+0x2565d6c) #27 0x00000000021f72a3 clang::FrontendAction::Execute() (/LLVM/LLVM-trunk/bin/clang-tidy+0x21f72a3) #28 0x000000000216c1be clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/LLVM/LLVM-trunk/bin/clang-tidy+0x216c1be) #29 0x0000000001a74779 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr, clang::FileManager*, std::shared_ptr, clang::DiagnosticConsumer*) (/LLVM/LLVM-trunk/bin/clang-tidy+0x1a74779) #30 0x0000000001a0c142 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef, std::allocator>>, llvm::IntrusiveRefCntPtr, bool, bool, llvm::StringRef)::ActionFactory::runInvocation(std::shared_ptr, clang::FileManager*, std::shared_ptr, clang::DiagnosticConsumer*) ClangTidy.cpp:0:0 #31 0x0000000001a6c59c clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr, std::shared_ptr) (/LLVM/LLVM-trunk/bin/clang-tidy+0x1a6c59c) #32 0x0000000001a6fbc6 clang::tooling::ToolInvocation::run() (/LLVM/LLVM-trunk/bin/clang-tidy+0x1a6fbc6) #33 0x0000000001a71c13 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (/LLVM/LLVM-trunk/bin/clang-tidy+0x1a71c13) #34 0x0000000001a15de6 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef, std::allocator>>, llvm::IntrusiveRefCntPtr, bool, bool, llvm::StringRef) (/LLVM/LLVM-trunk/bin/clang-tidy+0x1a15de6) #35 0x0000000000a82b63 clang::tidy::clangTidyMain(int, char const**) (/LLVM/LLVM-trunk/bin/clang-tidy+0xa82b63) #36 0x00007f30f18cc7e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5) #37 0x0000000000a776ae _start (/LLVM/LLVM-trunk/bin/clang-tidy+0xa776ae)