Issue 180346
Summary [clang-tidy] `readability-suspicious-call-argument` crashes on malformed configuration
Labels clang-tidy
Assignees
Reporter XGPSPL
    **Environment:**
- Clang-Tidy Version: LLVM version 23.0.0git (Optimized build with assertions)
- Commit Hash: [`5654ecd5ddeb2f40e124a6bf10cc78230da4ef49`](https://github.com/llvm/llvm-project/commit/5654ecd5ddeb2f40e124a6bf10cc78230da4ef49)
- Platform: Linux 6.18.6

**Reproducer:**
```c++
// ./build/bin/clang-tidy -checks='-*,readability-suspicious-call-argument'
// -config="{CheckOptions: {readability-suspicious-call-argument.Abbreviations: 'crash='}}"
void f() {}
```

**Backtraces:**

```
 #0 0x00007f61020b7208 __interceptor_backtrace /usr/src/debug/gcc/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4423:28
 #1 0x000055f94c522c51 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (./build/bin/clang-tidy+0x8530c51)
 #2 0x000055f94c512efa llvm::sys::RunSignalHandlers() (./build/bin/clang-tidy+0x8520efa)
 #3 0x000055f94c5137b3 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #4 0x00007f610183e4d0 (/usr/lib/libc.so.6+0x3e4d0)
 #5 0x00007f610189890c (/usr/lib/libc.so.6+0x9890c)
 #6 0x00007f610183e3a0 raise (/usr/lib/libc.so.6+0x3e3a0)
 #7 0x00007f610182557a abort (/usr/lib/libc.so.6+0x2557a)
 #8 0x00007f61018254e3 __assert_perror_fail (/usr/lib/libc.so.6+0x254e3)
 #9 0x000055f953207601 clang::tidy::readability::SuspiciousCallArgumentCheck::SuspiciousCallArgumentCheck(llvm::StringRef, clang::tidy::ClangTidyContext*) (.cold) SuspiciousCallArgumentCheck.cpp:0:0
#10 0x000055f952adb3ad std::_Function_handler<std::unique_ptr<clang::tidy::ClangTidyCheck, std::default_delete<clang::tidy::ClangTidyCheck>> (llvm::StringRef, clang::tidy::ClangTidyContext*), void clang::tidy::ClangTidyCheckFactories::registerCheck<clang::tidy::readability::SuspiciousCallArgumentCheck>(llvm::StringRef)::'lambda'(llvm::StringRef, clang::tidy::ClangTidyContext*)>::_M_invoke(std::_Any_data const&, llvm::StringRef&&, clang::tidy::ClangTidyContext*&&) ReadabilityTidyModule.cpp:0:0
#11 0x000055f94ff32700 clang::tidy::ClangTidyCheckFactories::createChecksForLanguage(clang::tidy::ClangTidyContext*) const (./build/bin/clang-tidy+0xbf40700)
#12 0x000055f94cc87cc0 clang::tidy::ClangTidyASTConsumerFactory::createASTConsumer(clang::CompilerInstance&, llvm::StringRef) (./build/bin/clang-tidy+0x8c95cc0)
#13 0x000055f94cc8c2a9 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, bool)::ActionFactory::Action::CreateASTConsumer(clang::CompilerInstance&, llvm::StringRef) ClangTidy.cpp:0:0
#14 0x000055f9573a75c8 clang::FrontendAction::CreateWrappedASTConsumer(clang::CompilerInstance&, llvm::StringRef) (./build/bin/clang-tidy+0x133b55c8)
#15 0x000055f9573c36e8 clang::FrontendAction::BeginSourceFile(clang::CompilerInstance&, clang::FrontendInputFile const&) (./build/bin/clang-tidy+0x133d16e8)
#16 0x000055f957043292 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (./build/bin/clang-tidy+0x13051292)
#17 0x000055f94ca906c8 clang::tooling::FrontendActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) (./build/bin/clang-tidy+0x8a9e6c8)
#18 0x000055f94cc45900 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, bool)::ActionFactory::runInvocation(std::shared_ptr<clang::CompilerInvocation>, clang::FileManager*, std::shared_ptr<clang::PCHContainerOperations>, clang::DiagnosticConsumer*) ClangTidy.cpp:0:0
#19 0x000055f94ca6b64d clang::tooling::ToolInvocation::runInvocation(char const*, clang::driver::Compilation*, std::shared_ptr<clang::CompilerInvocation>, std::shared_ptr<clang::PCHContainerOperations>) (./build/bin/clang-tidy+0x8a7964d)
#20 0x000055f94ca7a4cf clang::tooling::ToolInvocation::run() (./build/bin/clang-tidy+0x8a884cf)
#21 0x000055f94ca85fb9 clang::tooling::ClangTool::run(clang::tooling::ToolAction*) (./build/bin/clang-tidy+0x8a93fb9)
#22 0x000055f94cc8d81c 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, bool) (./build/bin/clang-tidy+0x8c9b81c)
#23 0x000055f94c464486 clang::tidy::clangTidyMain(int, char const**) (./build/bin/clang-tidy+0x8472486)
#24 0x00007f6101827635 (/usr/lib/libc.so.6+0x27635)
#25 0x00007f61018276e9 __libc_start_main (/usr/lib/libc.so.6+0x276e9)
#26 0x000055f94c42e9e5 _start (./build/bin/clang-tidy+0x843c9e5)
```

**AI Usage:** This issue was found using an LLM-Assisted Fuzzer and verified by a human.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to