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

    <tr>
        <th>Summary</th>
        <td>
            "!dbg attachment points at wrong subprogram for function" after InlinerPass
        </td>
    </tr>

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

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

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

<pre>
    llvm commit: 8fe33a05b94d
Reproduce with:
```opt -passes="inline" bbi-106975.ll -S -verify-each```
Result:
```
!dbg attachment points at wrong subprogram for function
!15 = distinct !DISubprogram(name: "f", scope: !1, file: !1, line: 9, type: !6, scopeLine: 9, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
ptr @f
  br label %for.body.i, !llvm.loop !3
!4 = !DILocation(line: 6, column: 3, scope: !5)
!5 = distinct !DISubprogram(name: "a", scope: !1, file: !1, line: 3, type: !6, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
!5 = distinct !DISubprogram(name: "a", scope: !1, file: !1, line: 3, type: !6, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !0)
LLVM ERROR: Broken module found after pass "InlinerPass", compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: build-all/bin/opt -passes=inline bbi-106975.ll -S -verify-each
1.      Running pass "cgscc(inline)" on module "bbi-106975.ll"
 #0 0x000055e012d317c6 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (build-all/bin/opt+0x46be7c6)
 #1 0x000055e012d2f20e llvm::sys::RunSignalHandlers() (build-all/bin/opt+0x46bc20e)
 #2 0x000055e012d320b9 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007fd2706c6d10 __restore_rt (/lib64/libpthread.so.0+0x12d10)
 #4 0x00007fd26e06652f raise (/lib64/libc.so.6+0x4e52f)
 #5 0x00007fd26e039e65 abort (/lib64/libc.so.6+0x21e65)
 #6 0x000055e012d17ef3 llvm::report_fatal_error(llvm::Twine const&, bool) (build-all/bin/opt+0x46a4ef3)
 #7 0x000055e0141b113a void llvm::detail::UniqueFunctionBase<void, llvm::StringRef, llvm::Any, llvm::PreservedAnalyses const&>::CallImpl<llvm::VerifyInstrumentation::registerCallbacks(llvm::PassInstrumentationCallbacks&, llvm::AnalysisManager<llvm::Module>*)::$_0>(void*, llvm::StringRef, llvm::Any&, llvm::PreservedAnalyses const&) StandardInstrumentations.cpp:0:0
 #8 0x000055e0139344e2 llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) (build-all/bin/opt+0x52c14e2)
 #9 0x000055e0141f79fd llvm::detail::PassModel<llvm::LazyCallGraph::SCC, llvm::PassManager<llvm::LazyCallGraph::SCC, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&>::run(llvm::LazyCallGraph::SCC&, llvm::AnalysisManager<llvm::LazyCallGraph::SCC, llvm::LazyCallGraph&>&, llvm::LazyCallGraph&, llvm::CGSCCUpdateResult&) PassBuilderPipelines.cpp:0:0
#10 0x000055e013935a7d llvm::ModuleToPostOrderCGSCCPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x52c2a7d)
#11 0x000055e0141f7b6d llvm::detail::PassModel<llvm::Module, llvm::ModuleToPostOrderCGSCCPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) PassBuilderPipelines.cpp:0:0
#12 0x000055e012f21bf7 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (build-all/bin/opt+0x48aebf7)
#13 0x000055e014183dec llvm::runPassPipeline(llvm::StringRef, llvm::Module&, llvm::TargetMachine*, llvm::TargetLibraryInfoImpl*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::ToolOutputFile*, llvm::StringRef, llvm::ArrayRef<llvm::PassPlugin>, llvm::ArrayRef<std::function<void (llvm::PassBuilder&)>>, llvm::opt_tool::OutputKind, llvm::opt_tool::VerifierKind, bool, bool, bool, bool, bool, bool, bool) (build-all/bin/opt+0x5b10dec)
#14 0x000055e012cf3c7e optMain (build-all/bin/opt+0x4680c7e)
#15 0x00007fd26e0527e5 __libc_start_main (/lib64/libc.so.6+0x3a7e5)
#16 0x000055e012cf176e _start (build-all/bin/opt+0x467e76e)
Abort (core dumped)
```
This doesn't seem to be new, I've reproduced it with old builds from June 2019.


[bbi-106975.ll.gz](https://github.com/user-attachments/files/20453899/bbi-106975.ll.gz)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWFtv5CoS_jX0C0oLgy_th35wOtNns5vRRMmc89rCpuxmxwYv4ORkfv0K3Df3JJPLjrTas1KiNhiK-r66uChurWwUwBIllyi5mvHBbbVZdvIbh3ar2w7UrNTiadm2Dx2udNdJh1iBFzUwxklS5rFApLiD3mgxVIAfpdsiViBSoJSMf7p3-KLn1oJF7ApRKlUrFSBKcVnKi4ikeZbM2xZf3OOLBzCyfroAXm0PAsIBdmjdmWD_TCNRNpg7x6ttB8rhXkvlLOYOPxqtGmyHsje6MbzDtTa4HlTlpFbj3ijBiF1hIa2TqnIY0ejq-v6wA9GF4h14wIjSGlGK6ArbSve7uSjyE7VsJ-OAjhU49wP3dFicHnbfnK6w_brljfXjq-v7Wz-4gloq6fXEKFsdpr_0TnbyOwi_bVCjKRCNCKI5IkXvDEYxqREpMC4NbnkJLUY0qbWZeyvOpd-IaOStOW-17v2AjVzEgYrAwI2ueCCJLvZYgu6VbodO-SE7JyIZVfBP76CUv5dS9iqlYUV9JNTzdmu0036X-KV8_1-Bvbn54zP-dHf35c7PXxr9DRTutBhawLUelMC8dmCwD3SP9joEubnl1u5wV7rrZRscC_NSG-ePihApbm8-FfeffKR20mGOy6HBBnptHHYab53rvf6IrhFdN9Jth3Je6Q7RtXfj3c9Fb_Q_oXKIrqW1A1hE15grgaWq2kEAdlvAleF2i0tefXOGVzBHpLh3vPqGxdD1Y3Ihc0Ty213C4KYZfFIJ9JWDbMUFb1tE16VUiK6niW3Maq-kNFJE_oC7QSmpmgNZVWOrCtHFPjPmPjnqA7-I0olYTyjxxmEEkz8JISRJgERUsCirUhxoYQVihX2y48OtkcoFrF89ch_Yh0WGP260dQa8wwYfk8ohmmNEF8-CRvSS_BmnJWRVOjqHVyWaqkJrSuA5Ve4GdS8bxdu_cSVaMBbRxVtOqyiB42n0DDglZY4ncgOdLsSAbKSq9cYhWvjxg5YiPO532HnVe_uT8D8ewHYHZLWgGUmrVEQEbzYGrNMGNsYH-8I7nyzTePzt3dYAF3Or5yRoHVGxDx8vMj4RmQJJ04TW2HBp4UdZlZeSjtgh8d-evZRkKoXlkCZjPP1UCo0gTY5S0il_UQY1O7HWGH6bmjvebsAYbSYu8_XRu3qllXU7lym1bt9gRR5DzY5aZKdaxFEZRYwH85yoIsBx2Y7Pvyv5rwHWu2_4JbeA2Go05-pky70zUjV3UE-nC_U0nbg1YME8gCgUb58s2CMk9mlcsuJte931LWKr474_QkRfK-tMyA_jx3JHXCOtA-P3-URjJ7z5bHi27WRheq6uV0raz1zxBsxEg88hMXgtgx-Pk4jGGxLmFgcXfyst6ZuZ8VHjuBLciDMoz4XR4tTCLGdxDBRPCXkO3w3__uSZ-c3wfrvTfrV6Oz9v2T9dM9r85wsmb1e_3a9Wv_eCO9hVpyduYwY1MfxL-rzD5B-GlP7HqF6L64RWUQz0GNf5NK7rLK9fCungAVpA-26wf0Hf-V_Q8a_p396ZLr2Dg7mVPfgy7Dyd-RqHnKWzhGenjj2m5a_6Vlv3xQgw4TgvuxC8d9o8z94um3_wA_Cm-KQ8E_tbC4ui8_gs0_fF517j1bvAfwDdSw73Cyh7o8mnlWZNo7LO3pCFnmPovw7559XZgkNZZ0cvYVMvWTAB1WmNOCgPfs_dRNcXSo0XIHzlpgH3mVfbIKd47u2NLA03T9eq1qEe-2GV1u2XwfWDW_vr9K99_VLlZAx_8rOnnAdO2qGR6seMflxvnRjnDg2psZDFP9SLOxcdLbjzj4lU3buN8-V3GI0o_iGV-NmqUMFKMPt1Y_n-3t_X0k4ZEQHV0aHiSShVNasywLp3n7lUr90cFqTK4Cjq7BaU0AwSvNn4O8_GOm7cptsJffFGxHgGyVFieqZclKWAR1mv6ZZBlu50K_YXsUobCH0F2Ofdk7bl1620WGiwCtHMYQvQYadxCVjBo-f3GtHsAbDZ91UFli70VrFuxdiKsLg2usN_HxRgSqJ87s8Y_5LLSbtg3nxHyRWii5-0UgYL5uLYRrWIrmvZhjYKJXHCFnnugZ-LpflMLJnIWc5nsIyyeMFYRimZbZcpoYs4z_ISgJVJFYk0WiwiVuZZkmcpIzO5pIQm3nQkj1hM5nECdRLFUZowwkSWo5hAx2U7D-1KbZpZaO0sozhK0sUstDdt6FxTquARh7eIUpRczUzoWF-UQ2NRTFppnT2KcdK1sAxtqY-2jynd9btO-lyzwbTLj7erdrAelvTfAQAA___E-CZm">