<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/65903>65903</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang-scan-deps segfaults
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          zybreak
      </td>
    </tr>
</table>

<pre>
    clang 16.0.6
command `/usr/bin/clang-scan-deps` segfaults with the following stack trace

`clang::Lexer::LexDependencyDirectiveToken(clang::Token&) 0x00007f3c7ec90e54
clang::Preprocessor::Lex(clang::Token&) 0x00007f3c7ece185f
clang::Preprocessor::DiscardUntilEndOfDirective() 0x00007f3c7eca54e7
clang::Preprocessor::CheckEndOfDirective(char const*, bool) 0x00007f3c7ecb4e21
clang::Preprocessor::HandleIncludeDirective(clang::SourceLocation, clang::Token&, clang::detail::SearchDirIteratorImpl<true>, clang::FileEntry const*) 0x00007f3c7ecc8a0f
clang::Preprocessor::HandleDirective(clang::Token&) 0x00007f3c7ecc9759
clang::Lexer::LexDependencyDirectiveToken(clang::Token&) 0x00007f3c7ec90ffa
clang::Preprocessor::Lex(clang::Token&) 0x00007f3c7ece185f
clang::Preprocessor::CheckEndOfDirective(char const*, bool) 0x00007f3c7ecb4c91
clang::Preprocessor::HandleIncludeDirective(clang::SourceLocation, clang::Token&, clang::detail::SearchDirIteratorImpl<true>, clang::FileEntry const*) 0x00007f3c7ecc8a0f
clang::Preprocessor::HandleDirective(clang::Token&) 0x00007f3c7ecc9759
clang::Lexer::LexDependencyDirectiveToken(clang::Token&) 0x00007f3c7ec90ffa
clang::Preprocessor::Lex(clang::Token&) 0x00007f3c7ece185f
clang::Preprocessor::CheckEndOfDirective(char const*, bool) 0x00007f3c7ecb4c91
clang::Preprocessor::HandleIncludeDirective(clang::SourceLocation, clang::Token&, clang::detail::SearchDirIteratorImpl<true>, clang::FileEntry const*) 0x00007f3c7ecc8a0f
clang::Preprocessor::HandleDirective(clang::Token&) 0x00007f3c7ecc9759
clang::Lexer::LexDependencyDirectiveToken(clang::Token&) 0x00007f3c7ec90ffa
clang::Preprocessor::Lex(clang::Token&) 0x00007f3c7ece185f
clang::Preprocessor::CollectPpImportSuffix(llvm::SmallVectorImpl<clang::Token>&) 0x00007f3c7ece6cce
clang::Preprocessor::LexAfterModuleImport(clang::Token&) 0x00007f3c7ece72d6
clang::Preprocessor::Lex(clang::Token&) 0x00007f3c7ece1a0b
clang::ReadPCHAndPreprocessAction::ExecuteAction() 0x00007f3c8051f0fb
clang::FrontendAction::Execute() 0x00007f3c8051e7c9
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) 0x00007f3c804c0d2f
<unknown> 0x00007f3c8065e50f
clang::tooling::ToolInvocation::run() 0x00007f3c80692d09
clang::tooling::dependencies::DependencyScanningWorker::computeDependencies(llvm::StringRef, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, clang::tooling::dependencies::DependencyConsumer&, clang::DiagnosticConsumer&, std::optional<llvm::StringRef>) 0x00007f3c806597d5
clang::tooling::dependencies::DependencyScanningWorker::computeDependencies(llvm::StringRef, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, clang::tooling::dependencies::DependencyConsumer&, std::optional<llvm::StringRef>) 0x00007f3c80659d7c
clang::tooling::dependencies::DependencyScanningTool::getP1689ModuleDependencyFile(clang::tooling::CompileCommand const&, llvm::StringRef, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) 0x00007f3c8065abb3
<unknown> 0x0000557157b8c15c
<unknown> 0x0000557157b904b2
llvm::ThreadPool::processTasks(llvm::ThreadPoolTaskGroup*) 0x00007f3c76da59f4
<unknown> 0x00007f3c76da63ea
<unknown> 0x00007f3c7588c9eb
<unknown> 0x00007f3c75910dfc`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWEtv4zYQ_jX0RYhBURZlHXxw7bhrYIsGu2l7DKjhyGZNkwJJ5dFfX0hW7NhyNgay3QWKHPwiZ755fTOkJbxXK4M4IekvJJ0PRB3W1k3-eSocis2gsPJpAlqYVRTzIR1yQueETsFut8LIiHBK2KL2jrBFoQxhi1b2yoMwVxIrTziNPK5KUevgowcV1lFYY1Rare2DMqvIBwGbKDgBuIPu3jltkUgyJcn0Mz6i23-dY4VGooGnuXIIQd3jrd2gIWz8Qqdb4oTlEX2klNKsTCBDyCmmoy6Mg_iNw8pZQO_twdKFiBiP0_ICxLnyIJz8wwSlr438vdz7T9i4hyrSEWYXoM7WCJseHKyFi8AaHwibEjaLCmt1z0YxQhZfYOOTMFLj0oCuJR6ZOWh9tbUD_GxBBGVNY_Js7o6WJQahdKePwsF6rtwyoBPBuuW20iSZBVcjSa5PNBdK47UJ7ulFkCfBwVjQS8qyC-6VqF4tOuRZmvfQvzNTy1L8FKa-j1OQf3Dqg1MfnPrg1H_OKas1QripltvKuvC1LkvV2ND6fttVayu0_hPhUKee_aZmZ1zg8HwleSuoaRnQ_WZlrXHnx6VRZkzy75w3QYse4hcU8mb2aWrkAXsKLfvb_etHhDpgt3R6FRnTNC5p2YddOGsCGnkG6iwIZtAn4sxuK6XRLY0PwgCe9-h1q6dJGNMRUMk68pBkVpuNsQ9NlY-keIrpma4L1mp1SLPVS3P_PCnaNVefyxDPmaT94I7Q5HOTKfTdfXDfdl9BGKPM6i_rNs99CXZb1QHnL9WOmB2cMqsvWDYTxwe5W71vqU6S2X7l7g4eH-N496MQXsGdb1WbXlgLd6TeLNwFJ1Twz9u7kbaXEFo3CWltdPvRt2R-sB_7VzduTyf5xSWZWePrLbo-xFyJlbE-KDiR2ftmq4Ywopk25-rVRHLCnzTPZPrBn_8vf97FDZnB-7nRTLPd3grDTczH-e7IOkg2d5XjYXtkpBvVs-6__8sEvcWqH8Uh_rOsnpZMFEXy-hGUplmcZsUY4hTelMrpqGA7qUOab9euOdT3Je1O9VvhN8ddfhBs9n51tq76d1AuRZqXo2-fmY0UT1C8IZWOx5Bj8ZZUHlNZAuF0ICeJzJNcDHAS83yUcJbnyWA9AcgR4pSPaSwKniRAC1ZmPBNQCsZLPlATRllC85jGnCVxMiwxGUEWc6AC4pgxMqK4FUoPm3QMrVsNlPc1Tnia02SgRYHat8-9GDP4ELWbhDGSzgdu0uhcFfXKkxHVygd_QAkqaJycPOk6POYa1E5P1iFUbSuyBWGLlQrruhiC3RK2aIuz-7iqnP0bIRC2aK17whatd_8GAAD__9mxDpc">