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

    <tr>
        <th>Summary</th>
        <td>
            opt crashes running pass inferattrs
        </td>
    </tr>

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

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

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

<pre>
    opt: /home/peter/projects/llvm-fork/llvm-project/llvm/include/llvm/IR/DerivedTypes.h:138: llvm::Type* llvm::FunctionType::getParamType(unsigned int) const: Assertion `i < getNumParams() && "getParamType() out of range!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: opt -O3 Math.ib -o Math_opt.ib
1.      Running pass "inferattrs" on module "Math.ib"
 #0 0x0000561e83d2cdeb llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/local/bin/opt+0x342fdeb)
 #1 0x0000561e83d29cab llvm::sys::RunSignalHandlers() (/usr/local/bin/opt+0x342ccab)
 #2 0x0000561e83d29dd4 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
 #3 0x00007f7beb45b050 (/lib/x86_64-linux-gnu/libc.so.6+0x3c050)
 #4 0x00007f7beb4a9eec __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007f7beb45afb2 raise ./signal/../sysdeps/posix/raise.c:27:6
 #6 0x00007f7beb445472 abort ./stdlib/abort.c:81:7
 #7 0x00007f7beb445395 _nl_load_domain ./intl/loadmsgcat.c:1177:9
 #8 0x00007f7beb453ec2 (/lib/x86_64-linux-gnu/libc.so.6+0x34ec2)
 #9 0x0000561e833c5ac4 llvm::TargetLibraryInfoImpl::isValidProtoForLibFunc(llvm::FunctionType const&, llvm::LibFunc, llvm::Module const&) const (/usr/local/bin/opt+0x2ac8ac4)
#10 0x0000561e82e15de4 llvm::inferNonMandatoryLibFuncAttrs(llvm::Function&, llvm::TargetLibraryInfo const&) (/usr/local/bin/opt+0x2518de4)
#11 0x0000561e81666330 llvm::InferFunctionAttrsPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/opt+0xd69330)
#12 0x0000561e813925ad llvm::detail::PassModel<llvm::Module, llvm::InferFunctionAttrsPass, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) crtstuff.c:0:0
#13 0x0000561e83b21c65 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/local/bin/opt+0x3224c65)
#14 0x0000561e80e27369 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) (/usr/local/bin/opt+0x52a369)
#15 0x0000561e80e19eb9 optMain (/usr/local/bin/opt+0x51ceb9)
#16 0x00007f7beb44624a __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#17 0x00007f7beb446305 call_init ./csu/../csu/libc-start.c:128:20
#18 0x00007f7beb446305 __libc_start_main ./csu/../csu/libc-start.c:347:5
#19 0x0000561e80e10531 _start (/usr/local/bin/opt+0x513531)
Aborted

I haven't included the program source hoping there is enough information here. But I can if required.

</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMV1GP4ygS_jXkBXWEwdjxQx48PRNd66Z3WzOrfY0wVBxubPAB7u3-9yews4nT6bveOZ10UreCofjqq6KqoIT3ujUAW8Q_If55JcZwtG6roLc6QL9qrHrd2iEgVmNEd0fbA6K7AQK4-OvsP0AGj-iu6577u4N1P07jeW3-RHSnjexGBeeJh2-I7j6D08-gfnsdwK-PiNUZ20RlSYbViNVxCdHLmd1oZNDWpJU000J4Ek70k-xmNMkqhbUJiFZYWuOTCbX34OJWjAqiMWL3uIXwy9in3R7RTRRHtEC0wIjSK9y4aMeA7QE7YVpANEOUIlrig9AdqDUi9dPXL_X3L9iPTa8DFrgZW-xgsC7gYPExhMFHznSH6K7V4Tg2a2n7s1eunKe9HyE6GAsT7Uk-xOEIWDrhj7gR8kdwQkLU_T0I-QOrsR-iClKTNSLVk7OtEz0Wrh17MCGqx3YI-O5Xhh9FOK51g-9sGu7tENa6QaTO4tZvozHatHgQ3kd3aHMAJ0JwHlGKrcG9VWMHcWkGiu4gMVQYweSFEEJ4kcGGKSoVNBdn6F_9NHhy2oRE_LdoBqKbs5ATf-ytDw5En87k_nSg6Sx2o49B2FkpOkR3jTaI7mKs0k_kheX0oKBBtJr5ZFd8Kilu8vk2mu-6NaL7mzCqA3cOig-olFJcqKTXKpXK8QIc0U2y6B573WpzsPuAaB2_n61WaVjNO_xaDvFYSfqfFLBZQXkoG2hy3hBOZqJdPIvdy6bYF_ldp834cteacVqQa2_XxcRZEk7OjPMloKgAJN7vh3B0INT-h-66ve6HDmIgiZRIa0R3ZgjRHZdia4lYneeI1WUxg_MrtuLQUOyE9pBAfDIT0d06fb16BUMM_MF6_YLoLkkmWFoiVp9QiyVqzvOSYtHEfEs4QU2uSFNp-yaLrObt5fV2VnG8N92-s0Ltle2FnmzUJtkYp3vfSjFhZVkZyZz8t7kykYGkf_FAcpD0fCDVIoSY5ELml7VRuBbCV9044V4fzME-9EM3LWn_u-i0enI22J11X3UTy-YivS7r6Fwjpyw7i_y57XLyccr68465wn4gR6iQGyHzycCYlYsyQSHjCi4NTBXnF2sehVEiWPc6E6qnInTDmDcmvPHRgvgHKPNso-CC8qKSZEVRMEYu9D1Eyic2ieeT8HNxcaNZkJ48-YZybUT36rV_FEa04BC7f7OFffmwAaqoGCNn_ouylLGKcqEulCsIQs9BFJk_WgXdLQoLyu9Y_RNmxb__ka-kCz6Mh0NK3VMhjS5hizRraCYLfqEjueF9_P8vIz9wUVGay4KfIyK_NJ8ALVlRXWh3o4keeNIDdNosr-jvwWnTfoPDrRLxTi4-CnlMOPV_yNRUzd5IWdv9OoZhDDvd3QD5r5bfMad2TrzG2UvHJ590Y6tNcv478j6oae5wKlDsPl7ueOHGiPVp1J2Kb4J4jHOQLFDtEPbB2jk3Jyv-ro36d1K_g9MHDe4k18SVv_z7kajiVLCiOgcVXwZVVkFTxXfnY7xRPwCXSWgu4K7v-YLmAu_38fbc-yBc2EvRdfs_72vpx7dvifmhcmtTaj7K-GBhs8brp0HBCMdJXhsdrpVMw4h8l5Cn5wGNzQw9lZnNLcSFDbfo30RmeXx38Bm4uvI14SzDE-SHXM04yyZX1_GZBCrikvoBH8UzGETLcGo9VOo9hrmn8HZ0EvDRDrFNCEdwgLXHYOzYHnF80Lp-eibGpTX-NAb8gKUwWB-wg3-O2k1d00ptmapYJVawzUpOeV5WPFsdt1wxQtRmoxQvDwUtM075hihQuWBFIdRKbymhnJQZJ5RTlq05ZKLh8WbmvJGkRDmBXuhuHVNkbV27Sj3VNss3ZUlWnWig86n_pdTAHzitxj6Gf165bWrHmrH1KCed9sGfYYIOHcTmeGrFwGN32S-dm6XV6Lrtz3d-M9HnLf1XAAAA___ceced">