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

    <tr>
        <th>Summary</th>
        <td>
            stl_vector.h:1142: const_reference std::vector<unsigned long>::operator[](size_type) const [_Tp = unsigned long, _Alloc = std::allocator<unsigned long>]: Assertion '__n < this->size()' failed.
        </td>
    </tr>

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

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

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

<pre>
    We got a crash building Firefox with PGO for android after something in the build system changed some compilation flags for some source files, with consequences on the profile data from instrumented builds (specifically, some C++ files weren't compiled with `-fprofile-generate` before, and now were, but without `-mllvm -pgo-temporal-instrumentation`, while the rest of the C++ is built with `-mllvm -pgo-temporal-instrumentation`).

STR:
- Download and extract https://drive.google.com/file/d/1h7ShN8grHONlFF8w1fhiCFwAWFTN3cr-/view?usp=sharing
- run `clang++ -fprofile-use=merged.profdata -o wrappers.o -c wrappers-79f7ba.cpp`

A Release build crashes. Below is a stack trace from a Debug build:
```
/usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_vector.h:1142: const_reference std::vector<unsigned long>::operator[](size_type) const [_Tp = unsigned long, _Alloc = std::allocator<unsigned long>]: Assertion '__n < this->size()' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0.      Program arguments: /tmp/llvm/obj/bin/clang++ -fprofile-use=merged.profdata -o wrappers.o -c wrappers-79f7ba.cpp
1.      <eof> parser at end of file
2.      Optimizer
3.      Running pass "pgo-instr-use" on module "wrappers-79f7ba.cpp"
 #0 0x00007fd051cced59 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /tmp/llvm/llvm/lib/Support/Unix/Signals.inc:799:11
 #1 0x00007fd051ccf20b PrintStackTraceSignalHandler(void*) /tmp/llvm/llvm/lib/Support/Unix/Signals.inc:875:1
 #2 0x00007fd051ccd40f llvm::sys::RunSignalHandlers() /tmp/llvm/llvm/lib/Support/Signals.cpp:105:5
 #3 0x00007fd051cce669 llvm::sys::CleanupOnSignal(unsigned long) /tmp/llvm/llvm/lib/Support/Unix/Signals.inc:370:1
 #4 0x00007fd051b7baf2 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /tmp/llvm/llvm/lib/Support/CrashRecoveryContext.cpp:0:7
 #5 0x00007fd051b7be56 CrashRecoverySignalHandler(int) /tmp/llvm/llvm/lib/Support/CrashRecoveryContext.cpp:391:1
 #6 0x00007fd04fe5b050 (/lib/x86_64-linux-gnu/libc.so.6+0x3c050)
 #7 0x00007fd04fea9ebc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #8 0x00007fd04fe5afb2 raise ./signal/../sysdeps/posix/raise.c:27:6
 #9 0x00007fd04fe45472 abort ./stdlib/abort.c:81:7
#10 0x00007fd0500d09ee (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd09ee)
#11 0x00007fd051d145ad std::vector<unsigned long, std::allocator<unsigned long>>::operator[](unsigned long) const /usr/lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/stl_vector.h:1142:2
#12 0x00007fd053a4a179 llvm::InstrProfRecord::getCountPseudoKind() const /tmp/llvm/llvm/include/llvm/ProfileData/InstrProf.h:935:27
#13 0x00007fd053a30e2d (anonymous namespace)::PGOUseFunc::readCounters(llvm::IndexedInstrProfReader*, bool&, llvm::InstrProfRecord::CountPseudoKind&) /tmp/llvm/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1443:30
#14 0x00007fd053a1e88c annotateAllFunctions(llvm::Module&, llvm::StringRef, llvm::StringRef, llvm::vfs::FileSystem&, llvm::function_ref<llvm::TargetLibraryInfo& (llvm::Function&)>, llvm::function_ref<llvm::BranchProbabilityInfo* (llvm::Function&)>, llvm::function_ref<llvm::BlockFrequencyInfo* (llvm::Function&)>, llvm::function_ref<llvm::LoopInfo* (llvm::Function&)>, llvm::ProfileSummaryInfo*, bool) /tmp/llvm/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:2236:9
#15 0x00007fd053a1e021 llvm::PGOInstrumentationUse::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /tmp/llvm/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:2369:7
#16 0x00007fd058878534 llvm::detail::PassModel<llvm::Module, llvm::PGOInstrumentationUse, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /tmp/llvm/llvm/include/llvm/IR/PassManagerInternal.h:91:17
#17 0x00007fd05208d605 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /tmp/llvm/llvm/include/llvm/IR/PassManagerImpl.h:85:5
#18 0x00007fd06239cc13 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) /tmp/llvm/clang/lib/CodeGen/BackendUtil.cpp:1187:5
#19 0x00007fd062396d92 (anonymous namespace)::EmitAssemblyHelper::emitAssembly(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /tmp/llvm/clang/lib/CodeGen/BackendUtil.cpp:1260:3
#20 0x00007fd06239632f clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /tmp/llvm/clang/lib/CodeGen/BackendUtil.cpp:1425:3
#21 0x00007fd062bce248 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /tmp/llvm/clang/lib/CodeGen/CodeGenAction.cpp:315:3
#22 0x00007fd06014d0cb clang::ParseAST(clang::Sema&, bool, bool) /tmp/llvm/clang/lib/Parse/ParseAST.cpp:191:12
#23 0x00007fd06395b8f7 clang::ASTFrontendAction::ExecuteAction() /tmp/llvm/clang/lib/Frontend/FrontendAction.cpp:1188:1
#24 0x00007fd062bd1ddd clang::CodeGenAction::ExecuteAction() /tmp/llvm/clang/lib/CodeGen/CodeGenAction.cpp:1102:5
#25 0x00007fd06395b356 clang::FrontendAction::Execute() /tmp/llvm/clang/lib/Frontend/FrontendAction.cpp:1076:7
#26 0x00007fd06388c4d1 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /tmp/llvm/clang/lib/Frontend/CompilerInstance.cpp:1056:23
#27 0x00007fd063a515da clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /tmp/llvm/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:265:8
#28 0x0000561fb9bec13e cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /tmp/llvm/clang/tools/driver/cc1_main.cpp:290:13
#29 0x0000561fb9bdf07e ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /tmp/llvm/clang/tools/driver/driver.cpp:218:5
#30 0x0000561fb9bdfad0 clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(llvm::SmallVectorImpl<char const*>&) const /tmp/llvm/clang/tools/driver/driver.cpp:360:9
#31 0x0000561fb9bdfa9d int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) /tmp/llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#32 0x00007fd06332db21 llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const /tmp/llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#33 0x00007fd063329da8 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0::operator()() const /tmp/llvm/clang/lib/Driver/Job.cpp:437:34
#34 0x00007fd063329d75 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::$_0>(long) /tmp/llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:5
#35 0x00007fd051b67ee9 llvm::function_ref<void ()>::operator()() const /tmp/llvm/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:5
#36 0x00007fd051b7b90f llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /tmp/llvm/llvm/lib/Support/CrashRecoveryContext.cpp:427:3
#37 0x00007fd063329763 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /tmp/llvm/clang/lib/Driver/Job.cpp:437:7
#38 0x00007fd0632c0332 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /tmp/llvm/clang/lib/Driver/Compilation.cpp:196:15
#39 0x00007fd0632c050c clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /tmp/llvm/clang/lib/Driver/Compilation.cpp:251:13
#40 0x00007fd0632debd1 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /tmp/llvm/clang/lib/Driver/Driver.cpp:2194:7
#41 0x0000561fb9bdeb9f clang_main(int, char**, llvm::ToolContext const&) /tmp/llvm/clang/tools/driver/driver.cpp:398:9
#42 0x0000561fb9c112c5 main /tmp/llvm/obj/tools/clang/tools/driver/clang-driver.cpp:17:3
#43 0x00007fd04fe4624a __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#44 0x00007fd04fe46305 call_init ./csu/../csu/libc-start.c:128:20
#45 0x00007fd04fe46305 __libc_start_main ./csu/../csu/libc-start.c:347:5
#46 0x0000561fb9bdd921 _start (/tmp/llvm/obj/bin/clang+++0x1a921)
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 21.0.0git (https://github.com/llvm/llvm-project c9446ff8a3d9535854404aef771da362856a5f02)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /tmp/llvm/obj/bin
Build config: +unoptimized, +assertions
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW1lz4ziS_jX0C0IKEDxEPviBlkt9bHWXw3btPCpAApQwRQIcAPQxv34DByWSlm1VtWv2mI3oaFMEkPjyQ2YiE0RhpdiOU3oZJFdBcn2Be70X8nLXYE5Y316Ugjxf_o2CndAAg0pitQdlzxrC-A5smKS1eAKPTO_BzS9fQC0kwJxIwQjAtaYSKNFSvTedGQd6T91goJ6Vpi2o9pjvKLG9QCXajjVYM8FB3eCdsuJskxK9rCioWUNVgNZuwkpwRf_RU15RBYST3klhOgGCNQa1FC1gXGnZt5RrStzkCgQoUx2tWM0q3DTPRqKdZh2gqwBduXnAI5WUB2ilPTJK3LxBChe1n2ixo5xKrGmQQlDSWkhqpGFOABePVoT5XfbajhW9tsPbpnlowaLbiYWmbSckbhZHoJaCIIVW071Rx6gmqdJA1PZ5AMqUVUkfgZ0rOV8GsAhgcXd_G0TmYQGuxSNvBCYWPX3SElca7LXulOmBNgHaEMke6HInxK6hy0q0AdoYFkxLgDbhfnW3_zPbyV-__NlsNtljWO_ZevNY_G1z_2dUyUWANg-MPgbRplddEF2rPZaM7-zssudGgarBfOe1O7LcKxpE1y2VO0qW5qVd34UAjxJ3HZVqKcCiOvxarPJ6VeJl1XVGWatoAW5pQ7EaLNCaMlVLcEUb8WiYxEBpXH0DRnHqjAeDa1r2OzfE8WQEuv-gIaVXMkCbhpUB2uyqKkCbpyzdpvGiYbx_Wux4b4hBAdosly__x3jV9MTwVzmdh84l0ypAG6Wb7QOttJDLfRAVYRijICqs5eutpLWx0IoCpS24qHB9g2jdc-vWBDSC74Lok2sWnbFVIZ2vGy9g_6Rb_dzRAOVOKgiSq-19B4LoGkyFoDXYFk0jKtt2mBKbV_iVWZNrA7dQikrr1gFabbccBNEa6D1TiyD6ZCAEKAtQHqAVqLHxM2ObN58_FXefgOrLlpnQY5ZB0k5IDbSYmeWO6X1feoM0DuD_LDop_k4rbZhWqjexY2Ot2_NufcnHNFx9swtv9Owk7aSoqFI2NpnYM3g1VkpUDJtgYixWVZJ12uC9s7ZD-rZzdgKXAcxvpNhJ3AIsd9b_DGQQoI1uuyNSUf7drjg3ZvDR5g-L0AAJojUVdRB9Ah2WikqANaCcmHhiHRgWyHT70mnWsn9SGcAiMi9ue85N8O6wMmETmbhiw4nFhJCJu60gfUNN6ykACAXQ6BxBAJ8ghHBVE5iEVUVJkgNLgbUj9azcw41kXFs27916ZMdOEj9uhdKS4jZAqVkTxrWx3Tmnwx_rl3d9Z-wmQJuvnD2ZF2zHcaOWjFdBVKzy3PqWxxnOcNYIlmAGygn4FXPSUBmg7EEwEqDiryLJVolB4oGgGRASw_oUYbc9n-BRzp3ORTJAMIsVFSE0EBIPIZqvWZqeXLN1QzHvuy8eSICyWez4a7xEKzjiJZ6AKlclrpHZ0jEX_LkVvQIct1R11nhyD9A4-S2txAOVz2vBNX3Sv7Vd41odcbZPgDJrUut59Dtbg1NTeXKNFiuvRTLXgiYpmIydG9n3mfobMKI8HNGZjoDENU1KmEBgTcjLPLGhNayslkos0wBdwaeogolJKbzA1VQgzmlZge2203tJMdl-Y02zZW3X0ENGAsxeyDvdBGgz7rY0ix_HhrXUC89maHFdIiAxU9QKUd7-3PaqnhWhnYn6nVDWrmxPKxatgqgYpOZTqXESrxDApdlsrBxNHBX2lR2ehX4tTcSYhDYICcwpPYNCpYnf9o9c2rGOSyN5GoxIGCeYvLvdm3T2rO351bzghe373OC_J99BnoxJQIxwjMPVOBr9ZvalGylqY_XS67-jei16rm8U7Yn4D8aJj44HjU450xGnf3HjduJrrHGANoeZLMo8Spw9OZTRFGUEKSLvhaebX758VXTT22hn9jmKiYXtovlYR0KfKBmpiokJDoWtMoRo_Lb4DisvKEnfjSz3EnNVC9mqgYBRRYE2N798mb0cNpQ4jkzMgZ6eeEpPSLOsAphzobGmRdMYEszwqd5_2BzjhXJ32tQPt7Q-6_VD7berDWvona1AX0is_fQmuw6i9bHhHssd1Z9ZKbF8_o3XIkApmGAckDs2jXOdJ_lKYl7tb6Qocckapr304oOkN6L6tpGuUP5Y0Z-F6H5EoHemu75tD1yODPgnGSJCUWq81dthMrdDiMIxxhdivpok3Dpnz8-xzYLj5lkx9QfmeEflhDk_xBDz8zwPRWk-2qTG-3ySZassieIRXEI1Zj4fusFK_SEIbU6Bni7lSZp-gIdhK_rXkfsixv92a9g0qjuhv5nwy3HjgrxNmQYuxylOgmBGUpiMWTkKeZfB_730tJ2jJhsqBsPMOD9LUZRXVRi9t_t9apkulKJt2Tz_SpvOAPaFjS9IrWXdsI42jJuK0JXJLr7h6hvlpPABZ5T69Jz9o6fbTk_1NzVk9yiZptuhkhwNIrTGfaO3hDZU03cGuoVx5L837b0QzZded73eMGcD58w5GzWe8CUHa8FV3_p04OXC-rMFH1XWgtBfqAkgfvRXzZphzw6z1WhN89mapiR_t-B6bU3p6P3_uIX8uaSi1NR_kSMVwTmpEarH0xuivBBnAFO21u5IWproi3lFXxqFx2I8yGZT56VOQ0ApTrNxXJ1xhqllr9gDvaX1muub2TKdyroc2f_XFjhGyWiBw8kClxVFcfbW9KOTCLvjuy8hXzmbrXxxd-_L-VcC-GuI_ZNbwuEoIBxDHhdYKQxjAqtyDPkGS0WLu_spoDvaYm9eLoF7PZGbQrPihr_F3f3Ao9trfdWHxvVUGuVJmdUrMOVjIw0hB-t0AeiJVr2mg8GePBGbwhmkjB4nXIVhlvlzE4Mrnq4vCQkhJ_zvr2F6e_XCEKJjnEbJnKkoSceI3qDpYwiCq_SYcKJ0AifLqpiE4K0QdpKj1_GfY_0jyPPpjgeeqU2WPerVBDVOwoTgMWqP7yjtQVT4JdaX8fmM6DKgvbfus3l1qiHBT43zZh74kHklaViXeUmrMKKgqsJti9k0aSykxM-3tpir9li6oxAD0IfIyTu0Bm-cbg_4tRCNGj4QStPgJx6g5vYEdyA5n2IlNVxRMKi7Dp3-I8R3LW6a_7QHQ-7U9gTw2f5mZPg4OfR7015eaOAeBvxhdnS0w6eMA3xMoLORgWx_hmxQWuaKs8C5xgDFWzg7mPMfyL6fktcOus5TO7Ipiy-ZD19GjmrnBDCuXz8rMI0_hPpQ8FS4aUpcfdvW3HT-YI4_GXD-yPQHqD23dCqu7wO0ubv_PByM4ObTk5ZY2fopTkemNdmCowiRcnIs8eH8_jwL-zEy7JHFQEY0IyMneJJCeaN1AXcdrkXbYk7mG9vJwHdII0XnMEwSyGNyfEgcDwO22-rpKQzdjxIrVpkkkxlMa2eLo87mxVZLzLQammfixgf0Q7vpMjoQKw4kvx8g3vd4t9VcD_7-uyi9s8eRKfqi2JMfvyB_ldit4HVztK0eyhsO_P-LN448PyWMzL4upitK8-9bt--wrA_w9HT-NTSffOs-9THzcEZ0h2tqDxPO1e9DPqLG9gOiT2ii1dxZVmn0bx2pfjT8-OJh8p03jVAFzdb4GqHHi4PzHN2yPEnMZwNNh1F6sH5jjnHXYlLwfqfOI7yHktc4bzh4Qz5XPoHV9yr_uyjV65r_LsrPTOmJ5m_t_Acj6DCTLvH4HrLG55YfRBlKwlFFEcMpZYSW02JzDO969DypsU7Uca9R_S-k7L2q8UDS9bRiyeOjP8Xz3J2Wef0RJcuPFhZ5diwsYjQBV4UhqhJgYL1yV26Q_Xr1aRoWkxnDUbiOo9l9jxTFGGy3DStNiMRSb03aYpmxF0Aq1b-8U-IvrJwaZDe4VTyaMZ7PGMEE2P6MMz2fxD0ayQsr2V45CZHhDPkP6XFySuJEh1PwT0qO4tFxf5zOTIXkKAROpL_Ucs71RXubJcQ5Ct1tlnFTVAAqpdlICmeDoPYnH6DyfuAugrp7zfSJGZsjFIRRbCD0ioLFA9ACKEoBGx3BHGYCD1QqJjhA4RIu4Y5Z7N93bRRUeRyndZ3hiORJlGRJHMMY03q1CgmOUpQlKU5qiNy87oaA0clfien5Ny4e-ehqDCzu7e0m0LqvqwVwF5OgvaaBm4aSaybfviQKiyt3gVnwmu1c36ueC391kxi3DdAVHi7dqvGl5QtyGZE8yvEFvQxXUZaFGYTwYn8Z45LUCQzTNCsxjOI4TiqEK1yFeYkiRC7YJYIogQimMDHWsYS4pkmcVzSHJY5IHcSQtpg1S4N4KeTuwt65vQxRCmF80eCSNsr-MwOEOH0EtjVAKEiuL-Sl5b3sdyqIYcOUVkcxmumGXv67XoW-6GVz-ePXnT37D5fovwIAAP__9CCEeg">