Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clang-tidy crash in ASTMatcher(cppcoreguidelines-owning-memory) with GMock/GTest and lambdas. #91206

Closed
MichaelFeistETC opened this issue May 6, 2024 · 2 comments
Assignees
Labels
clang-tidy confirmed Verified by a second party crash-on-invalid duplicate Resolved as duplicate

Comments

@MichaelFeistETC
Copy link

MichaelFeistETC commented May 6, 2024

Running clang-tidy on the following piece of code causes clang-tidy to crash:

#include "gmock/gmock.h"
#include <cstdint>
class Mock
{
public:
  MOCK_METHOD(int, Foo, (uint8_t x));
};

TEST(BreakClangTidy, BreakClangTidy)
{
  Mock mock;
  auto foo = [mock](uint8_t x) { return mock.Foo(x); };
}

Resulting clang-tidy crash output:

Stack dump:
0.      Program arguments: clang-tidy --extra-arg-before=--driver-mode=g++ PROJECT_DIR\\tests\\break_clang_tidy.cpp -- C:\\PROGRA~1\\LLVM\\bin\\CLANG_~1.EXE -IPROJECT_DIR/tests -isystem PROJECT_DIR/build/_deps/googletest-src/googletest/include -isystem PROJECT_DIR/build/_deps/googletest-src/googletest -isystem PROJECT_DIR/build/_deps/googletest-src/googlemock/include -isystem PROJECT_DIR/build/_deps/googletest-src/googlemock -O0 -g -Xclang -gcodeview -std=c++20 -D_DEBUG -D_DLL -D_MT -Xclang --dependent-lib=msvcrtd -Wall -Wno-sign-conversion -Werror -MD -MT tests/CMakeFiles/lm75_test.dir/break_clang_tidy.cpp.obj -MF tests\\CMakeFiles\\lm75_test.dir\\break_clang_tidy.cpp.obj.d -o tests/CMakeFiles/lm75_test.dir/break_clang_tidy.cpp.obj -c PROJECT_DIR/tests/break_clang_tidy.cpp
1.      <eof> parser at end of file
2.      ASTMatcher: Matching 'cppcoreguidelines-owning-memory' against:
        CXXMethodDecl BreakClangTidy_BreakClangTidy_Test::TestBody : <PROJECT_DIR\tests\break_clang_tidy.cpp:9:1 <Spelling={PROJECT_DIR/build/_deps/googletest-src/googletest/include\gtest/internal/gtest-internal.h:1518:3>, PROJECT_DIR\tests\break_clang_tidy.cpp:13:1>
Exception Code: 0xC0000005
 #0 0x00007ff7c6b90043 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1310043)
 #1 0x00007ff7c6ab7f79 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1237f79)
 #2 0x00007ff7c6aba4b2 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123a4b2)
 #3 0x00007ff7c6ab830a (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123830a)
 #4 0x00007ff7c6ab76ea (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12376ea)
 #5 0x00007ff7c6abebc4 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123ebc4)
 #6 0x00007ff7c6ab5741 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1235741)
 #7 0x00007ff7c6ab4479 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1234479)
 #8 0x00007ff7c6ab3ef6 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1233ef6)
 #9 0x00007ff7c6abcadc (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123cadc)
#10 0x00007ff7c6abc302 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123c302)
#11 0x00007ff7c6ab87da (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12387da)
#12 0x00007ff7c6ab76ea (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12376ea)
#13 0x00007ff7c6abea56 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123ea56)
#14 0x00007ff7c6ab56c1 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12356c1)
#15 0x00007ff7c6ab4677 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1234677)
#16 0x00007ff7c6ab3ef6 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1233ef6)
#17 0x00007ff7c6ab384d (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123384d)
#18 0x00007ff7c6ab365f (C:\Program Files\LLVM\bin\clang-tidy.exe+0x123365f)
#19 0x00007ff7c6ab1e93 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1231e93)
#20 0x00007ff7c6b7022c (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12f022c)
#21 0x00007ff7c6b8d9d7 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x130d9d7)
#22 0x00007ff7c6b8f8b2 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x130f8b2)
#23 0x00007ff7c6b8f41b (C:\Program Files\LLVM\bin\clang-tidy.exe+0x130f41b)
#24 0x00007ff7c6b8d8aa (C:\Program Files\LLVM\bin\clang-tidy.exe+0x130d8aa)
#25 0x00007ff7c6ac40f3 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12440f3)
#26 0x00007ff7c6b8d8aa (C:\Program Files\LLVM\bin\clang-tidy.exe+0x130d8aa)
#27 0x00007ff7c6ac2d49 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1242d49)
#28 0x00007ff7c6ac42fd (C:\Program Files\LLVM\bin\clang-tidy.exe+0x12442fd)
#29 0x00007ff7c6ad074c (C:\Program Files\LLVM\bin\clang-tidy.exe+0x125074c)
#30 0x00007ff7c6ac4a3c (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1244a3c)
#31 0x00007ff7c6ac4327 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1244327)
#32 0x00007ff7c6ab0ee4 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1230ee4)
#33 0x00007ff7c6ae9443 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1269443)
#34 0x00007ff7c6587538 (C:\Program Files\LLVM\bin\clang-tidy.exe+0xd07538)
#35 0x00007ff7c589d981 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1d981)
#36 0x00007ff7c589d3f2 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1d3f2)
#37 0x00007ff7c5d7dc17 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x4fdc17)
#38 0x00007ff7c5bfa365 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x37a365)
#39 0x00007ff7c5d7dab5 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x4fdab5)
#40 0x00007ff7c5d7c8fb (C:\Program Files\LLVM\bin\clang-tidy.exe+0x4fc8fb)
#41 0x00007ff7c5d7f1ac (C:\Program Files\LLVM\bin\clang-tidy.exe+0x4ff1ac)
#42 0x00007ff7c5bf61c9 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x3761c9)
#43 0x00007ff7c5bc0c21 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x340c21)
#44 0x00007ff7c6a19220 (C:\Program Files\LLVM\bin\clang-tidy.exe+0x1199220)
#45 0x00007ff81bc5257d (C:\windows\System32\KERNEL32.DLL+0x1257d)
#46 0x00007ff81c8caa48 (C:\windows\SYSTEM32\ntdll.dll+0x5aa48)
Access violation

The example is running using a combination of GTest and GMock tagged at commit hash 5197b1a8e6a1ef9f214f4aa537b0be17cbf91946.

If the piece of code is not wrapped in a TEST block, clang-tidy doesn't crash. Seems to be a combination of using a GMock class, a GTest test block, and trying to improperly capture the instance of the GMock class in a lambda.

The project is being built using CMake 3.29 and using the built in CXX_CLANG_TIDY property. I'm using the LLVM tools at version 18.1.4 downloaded and installed from Chocolatey.

CMake looks like this:

set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)

FetchContent(GTest) // Using some helper functions here instead of directly using FetchContent. Not the actual line I have here.

mark_as_advanced(
  gmock_build_tests
  gtest_build_samples
  gtest_build_tests
  gtest_disable_pthreads
  gtest_force_shared_crt
  gtest_hide_internal_symbols
  BUILD_GMOCK
  BUILD_GTEST 
)

set_target_properties(gtest gtest_main gmock gmock_main
  PROPERTIES FOLDER "tests"
)

enable_testing()

include(GoogleTest)

add_executable(test)

set_target_properties(test PROPERITES
  C_CLANG_TIDY "clang-tidy"
  CXX_CLANG_TIDY "clang-tidy"
)

target_sources(test PRIVATE break_clang_tidy.cpp)
target_link_libraries(test PRIVATE GTest::gtest_main GTest::gmock_main)

gtest_discover_tests(test EXTRA_ARGS "--gtest_output=xml:test-results)
@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label May 6, 2024
@5chmidti
Copy link
Contributor

5chmidti commented May 6, 2024

It looks like this is because of invalid code: https://godbolt.org/z/9M77aWPzv

I think the issue is due to clang seeing there is one capture, but then the capture init is a nullptr (because of the miscompile) in line 293 here:

for (unsigned I = 0, N = Node->capture_size(); I != N; ++I) {
const auto *C = Node->capture_begin() + I;
if (!C->isExplicit())
continue;
if (Node->isInitCapture(C) && !match(*C->getCapturedVar()))
return false;
if (!match(*Node->capture_init_begin()[I]))
return false;
}

-> dereferencing a nullptr because we may want to match on capture initializers.

Manually reduced example:

struct DeletedCopy {
  DeletedCopy() = default;
  DeletedCopy(const DeletedCopy &) = delete;
  DeletedCopy &operator=(const DeletedCopy &) = delete;
};
class Mock {
public:
  void Foo() {}
  DeletedCopy c;
};

void TestBody() {
    Mock mock;
    auto foo = [mock](int x) { return mock.Foo(x); };
}

https://godbolt.org/z/xq6E7jnK9

Debug stacktrace:

PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: /llvm-project/build/debug/bin/clang-tidy --checks=-*,cppcoreguidelines-owning-memory -p . ../../test/unittests/basic_test.cpp
1.      <eof> parser at end of file
2.      ASTMatcher: Matching 'cppcoreguidelines-owning-memory' against:
        CXXMethodDecl BreakClangTidy_BreakClangTidy_Test::TestBody : </path/to/basic_test.cpp:11:1 <Spelling=/home/user/.conan2/p/b/gteste92bacbb511c4/p/include/gtest/internal/gtest-internal.h:1568:3>, /path/to/basic_test.cpp:14:1>
 #0 0x00005ff64d0c739d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /llvm-project/llvm/lib/Support/Unix/Signals.inc:723:11
 #1 0x00005ff64d0c785b PrintStackTraceSignalHandler(void*) /llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
 #2 0x00005ff64d0c59ef llvm::sys::RunSignalHandlers() /llvm-project/llvm/lib/Support/Signals.cpp:105:5
 #3 0x00005ff64d0c7f1e SignalHandler(int) /llvm-project/llvm/lib/Support/Unix/Signals.inc:413:1
 #4 0x000073b461e5a770 (/usr/lib/libc.so.6+0x40770)
 #5 0x00005ff64d26973c clang::Stmt::getStmtClass() const /llvm-project/clang/include/clang/AST/Stmt.h:1359:44
 #6 0x00005ff64dca3d55 clang::ASTNodeKind::getFromNode(clang::Stmt const&) /llvm-project/clang/lib/AST/ASTTypeTraits.cpp:131:3
 #7 0x00005ff64d27c265 clang::DynTypedNode::DynCastPtrConverter<clang::Expr, clang::Stmt>::create(clang::Stmt const&) /llvm-project/clang/include/clang/AST/ASTTypeTraits.h:432:25
 #8 0x00005ff64d27c22c clang::DynTypedNode clang::DynTypedNode::create<clang::Expr>(clang::Expr const&) /llvm-project/clang/include/clang/AST/ASTTypeTraits.h:262:12
 #9 0x00005ff64de834bf bool clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::match<clang::Expr>(clang::Expr const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:378:28
#10 0x00005ff64de6788d clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseLambdaExpr(clang::LambdaExpr*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:293:11
#11 0x00005ff64de5eaaa clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/build/debug/tools/clang/include/clang/AST/StmtNodes.inc:340:1
#12 0x00005ff64de4ee85 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:683:7
#13 0x00005ff64de4dffe clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:193:5
#14 0x00005ff64de8da44 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseVarHelper(clang::VarDecl*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2294:5
#15 0x00005ff64de47dc0 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseVarDecl(clang::VarDecl*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2298:1
#16 0x00005ff64de42f44 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseDecl(clang::Decl*) /llvm-project/build/debug/tools/clang/include/clang/AST/DeclNodes.inc:278:1
#17 0x00005ff64de428cd clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::baseTraverse(clang::Decl const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:337:5
#18 0x00005ff64de42408 bool clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::traverse<clang::Decl>(clang::Decl const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:404:5
#19 0x00005ff64de8288f clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseDecl(clang::Decl*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:161:37
#20 0x00005ff64de80456 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseDeclStmt(clang::DeclStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2388:1
#21 0x00005ff64de5fd08 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/build/debug/tools/clang/include/clang/AST/StmtNodes.inc:1502:1
#22 0x00005ff64de4ee85 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:683:7
#23 0x00005ff64de4dffe clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:193:5
#24 0x00005ff64de80e99 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseCompoundStmt(clang::CompoundStmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:2405:1
#25 0x00005ff64de5fd74 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::dataTraverseNode(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/build/debug/tools/clang/include/clang/AST/StmtNodes.inc:1526:1
#26 0x00005ff64de4ee85 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor>::TraverseStmt(clang::Stmt*, llvm::SmallVectorImpl<llvm::PointerIntPair<clang::Stmt*, 1u, bool, llvm::PointerLikeTypeTraits<clang::Stmt*>, llvm::PointerIntPairInfo<clang::Stmt*, 1u, llvm::PointerLikeTypeTraits<clang::Stmt*>>>>*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:683:7
#27 0x00005ff64de90581 clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::baseTraverse(clang::Stmt const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:340:5
#28 0x00005ff64de42458 bool clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::traverse<clang::Stmt>(clang::Stmt const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:404:5
#29 0x00005ff64de42234 clang::ast_matchers::internal::(anonymous namespace)::MatchChildASTVisitor::findMatch(clang::DynTypedNode const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:123:7
#30 0x00005ff64de41e9a clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchesRecursively(clang::DynTypedNode const&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, int, clang::ast_matchers::internal::ASTMatchFinder::BindKind) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:648:20
#31 0x00005ff64de41a07 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::memoizedMatchesRecursively(clang::DynTypedNode const&, clang::ASTContext&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, int, clang::ast_matchers::internal::ASTMatchFinder::BindKind) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:621:9
#32 0x00005ff64de41051 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchesDescendantOf(clang::DynTypedNode const&, clang::ASTContext&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, clang::ast_matchers::internal::ASTMatchFinder::BindKind) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:685:5
#33 0x00005ff64e0620b8 bool clang::ast_matchers::internal::ASTMatchFinder::matchesDescendantOf<clang::Stmt>(clang::Stmt const&, clang::ast_matchers::internal::DynTypedMatcher const&, clang::ast_matchers::internal::BoundNodesTreeBuilder*, clang::ast_matchers::internal::ASTMatchFinder::BindKind) /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:767:5
#34 0x00005ff64e06d3f4 clang::ast_matchers::internal::HasDescendantMatcher<clang::Stmt, clang::Stmt>::matches(clang::Stmt const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:1653:5
#35 0x00005ff64d26151e clang::ast_matchers::internal::MatcherInterface<clang::Stmt>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:378:5
#36 0x00005ff64dd7b429 clang::ast_matchers::internal::DynTypedMatcher::matchesNoKindCheck(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:332:7
#37 0x00005ff64dd7e6ae clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0::operator()(clang::ast_matchers::internal::DynTypedMatcher const&) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:395:5
#38 0x00005ff64dd7e66d bool __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>::operator()<clang::ast_matchers::internal::DynTypedMatcher const*>(clang::ast_matchers::internal::DynTypedMatcher const*) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/predefined_ops.h:395:11
#39 0x00005ff64dd7e5bf clang::ast_matchers::internal::DynTypedMatcher const* std::__find_if<clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>, std::random_access_iterator_tag) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algobase.h:2102:8
#40 0x00005ff64dd7e3b6 clang::ast_matchers::internal::DynTypedMatcher const* std::__find_if_not<clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_pred<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_pred<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:112:7
#41 0x00005ff64dd7e30b clang::ast_matchers::internal::DynTypedMatcher const* std::find_if_not<clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:519:7
#42 0x00005ff64dd7e25d bool std::all_of<clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:459:24
#43 0x00005ff64dd7e1ee bool llvm::all_of<llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>&, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>&, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /llvm-project/llvm/include/llvm/ADT/STLExtras.h:1723:3
#44 0x00005ff64dd7e08a clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>) /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:394:3
#45 0x00005ff64dd7e16a clang::ast_matchers::internal::(anonymous namespace)::VariadicMatcher<&clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:123:5
#46 0x00005ff64dd7b258 clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:303:7
#47 0x00005ff64d2526b2 clang::ast_matchers::internal::Matcher<clang::Stmt>::matches(clang::Stmt const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:613:5
#48 0x00005ff64e330756 clang::ast_matchers::internal::matcher_hasBody0Matcher<clang::FunctionDecl, clang::ast_matchers::internal::Matcher<clang::Stmt>>::matches(clang::FunctionDecl const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchers.h:5756:24
#49 0x00005ff64d25c84e clang::ast_matchers::internal::MatcherInterface<clang::FunctionDecl>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:378:5
#50 0x00005ff64dd7b429 clang::ast_matchers::internal::DynTypedMatcher::matchesNoKindCheck(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:332:7
#51 0x00005ff64dd7e6ae clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0::operator()(clang::ast_matchers::internal::DynTypedMatcher const&) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:395:5
#52 0x00005ff64dd7e66d bool __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>::operator()<clang::ast_matchers::internal::DynTypedMatcher const*>(clang::ast_matchers::internal::DynTypedMatcher const*) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/predefined_ops.h:395:11
#53 0x00005ff64dd7e596 clang::ast_matchers::internal::DynTypedMatcher const* std::__find_if<clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_negate<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>, std::random_access_iterator_tag) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algobase.h:2097:8
#54 0x00005ff64dd7e3b6 clang::ast_matchers::internal::DynTypedMatcher const* std::__find_if_not<clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_pred<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, __gnu_cxx::__ops::_Iter_pred<clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:112:7
#55 0x00005ff64dd7e30b clang::ast_matchers::internal::DynTypedMatcher const* std::find_if_not<clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:519:7
#56 0x00005ff64dd7e25d bool std::all_of<clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::DynTypedMatcher const*, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /usr/lib64/gcc/x86_64-pc-linux-gnu/13.2.1/../../../../include/c++/13.2.1/bits/stl_algo.h:459:24
#57 0x00005ff64dd7e1ee bool llvm::all_of<llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>&, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0>(llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>&, clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)::$_0) /llvm-project/llvm/include/llvm/ADT/STLExtras.h:1723:3
#58 0x00005ff64dd7e08a clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>) /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:394:3
#59 0x00005ff64dd7e16a clang::ast_matchers::internal::(anonymous namespace)::VariadicMatcher<&clang::ast_matchers::internal::allOfVariadicOperator(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*, llvm::ArrayRef<clang::ast_matchers::internal::DynTypedMatcher>)>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:123:5
#60 0x00005ff64dd7b258 clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:303:7
#61 0x00005ff64df3c156 clang::ast_matchers::internal::TraversalMatcher<clang::Decl>::matches(clang::Decl const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:1514:5
#62 0x00005ff64d26115e clang::ast_matchers::internal::MatcherInterface<clang::Decl>::dynMatches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/include/clang/ASTMatchers/ASTMatchersInternal.h:378:5
#63 0x00005ff64dd7b258 clang::ast_matchers::internal::DynTypedMatcher::matches(clang::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const /llvm-project/clang/lib/ASTMatchers/ASTMatchersInternal.cpp:303:7
#64 0x00005ff64deb9684 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchWithFilter(clang::DynTypedNode const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1064:11
#65 0x00005ff64deb93c2 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::matchDispatch(clang::Decl const*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1086:5
#66 0x00005ff64deb91cd void clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::match<clang::Decl>(clang::Decl const&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:731:3
#67 0x00005ff64debbfe4 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1470:3
#68 0x00005ff64df157d6 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseDeclContextHelper(clang::DeclContext*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:1515:7
#69 0x00005ff64debd003 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseTranslationUnitDecl(clang::TranslationUnitDecl*) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:1615:1
#70 0x00005ff64debc0e1 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseDecl(clang::Decl*) /llvm-project/build/debug/tools/clang/include/clang/AST/DeclNodes.inc:24:1
#71 0x00005ff64debbff1 clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor::TraverseDecl(clang::Decl*) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1471:3
#72 0x00005ff64de40b72 clang::RecursiveASTVisitor<clang::ast_matchers::internal::(anonymous namespace)::MatchASTVisitor>::TraverseAST(clang::ASTContext&) /llvm-project/clang/include/clang/AST/RecursiveASTVisitor.h:189:5
#73 0x00005ff64de409dc clang::ast_matchers::MatchFinder::matchAST(clang::ASTContext&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1700:11
#74 0x00005ff64debba8e clang::ast_matchers::internal::(anonymous namespace)::MatchASTConsumer::HandleTranslationUnit(clang::ASTContext&) /llvm-project/clang/lib/ASTMatchers/ASTMatchFinder.cpp:1563:3
#75 0x00005ff65008644c clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) /llvm-project/clang/lib/Frontend/MultiplexConsumer.cpp:326:23
#76 0x00005ff6502a19e9 clang::ParseAST(clang::Sema&, bool, bool) /llvm-project/clang/lib/Parse/ParseAST.cpp:183:12
#77 0x00005ff64ff5d127 clang::ASTFrontendAction::ExecuteAction() /llvm-project/clang/lib/Frontend/FrontendAction.cpp:1194:1
#78 0x00005ff64ff5cb82 clang::FrontendAction::Execute() /llvm-project/clang/lib/Frontend/FrontendAction.cpp:1082:7
#79 0x00005ff64fe7c7cc clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1062:23
#80 0x00005ff64d1a68e4 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) /llvm-project/clang/lib/Tooling/Tooling.cpp:465:14
#81 0x00005ff64d24f509 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef)::ActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) /llvm-project/clang-tools-extra/clang-tidy/ClangTidy.cpp:581:37
#82 0x00005ff64d1a679b clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) /llvm-project/clang/lib/Tooling/Tooling.cpp:440:18
#83 0x00005ff64d1a5925 clang::tooling::ToolInvocation::run() /llvm-project/clang/lib/Tooling/Tooling.cpp:425:3
#84 0x00005ff64d1a7aa4 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) /llvm-project/clang/lib/Tooling/Tooling.cpp:623:11
#85 0x00005ff64d24cf78 clang::tidy::runClangTidy(clang::tidy::ClangTidyContext&, clang::tooling::CompilationDatabase const&, llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, llvm::IntrusiveRefCntPtr<llvm::vfs::OverlayFileSystem>, bool, bool, llvm::StringRef) /llvm-project/clang-tools-extra/clang-tidy/ClangTidy.cpp:602:8
#86 0x00005ff64d07c2b0 clang::tidy::clangTidyMain(int, char const**) /llvm-project/clang-tools-extra/clang-tidy/tool/ClangTidyMain.cpp:656:7
#87 0x00005ff64d07b062 main /llvm-project/clang-tools-extra/clang-tidy/tool/ClangTidyToolMain.cpp:20:3
#88 0x000073b461e43cd0 (/usr/lib/libc.so.6+0x29cd0)
#89 0x000073b461e43d8a __libc_start_main (/usr/lib/libc.so.6+0x29d8a)
#90 0x00005ff64d07af65 _start (/llvm-project/build/debug/bin/clang-tidy+0x3ffcf65)

@5chmidti 5chmidti added confirmed Verified by a second party crash-on-invalid and removed crash Prefer [crash-on-valid] or [crash-on-invalid] labels May 6, 2024
@PiotrZSL PiotrZSL self-assigned this Jun 6, 2024
@PiotrZSL
Copy link
Member

PiotrZSL commented Jun 6, 2024

Duplicate of #70460

@PiotrZSL PiotrZSL marked this as a duplicate of #70460 Jun 6, 2024
@EugeneZelenko EugeneZelenko added the duplicate Resolved as duplicate label Jun 6, 2024
@EugeneZelenko EugeneZelenko closed this as not planned Won't fix, can't repro, duplicate, stale Jun 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clang-tidy confirmed Verified by a second party crash-on-invalid duplicate Resolved as duplicate
Projects
None yet
Development

No branches or pull requests

4 participants