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

    <tr>
        <th>Summary</th>
        <td>
            Invalid IR crashing clang-19.1.7 O3
        </td>
    </tr>

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

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

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

<pre>
    Hi, I have received the following crash and error information from running clang on invalid IR. Is clang supposed to crash on invalid IR? Is this considered to be a bug?

opt-verify yields the following error on a generated .ll IR file:

```
PHI node entries do not match predecessors!
  %0 = phi i32 [ %1, %execute_if ], [ %2, %div ]
label %div
label %cont
opt-19: local2ifelse.ll: error: input module is broken!
```
I recognize that the IR is invalid, but if it is run through clang-19 with the following command:
`clang-19 -O3 local2ifelse.ll`

I receive the following crashing backtrace:
```
warning: overriding the module target triple with x86_64-pc-linux-gnu [-Woverride-module]
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: /usr/lib/llvm-19/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -dumpdir a- -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name local2ifelse.ll -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fdebug-compilation-dir=/root -fcoverage-compilation-dir=/root -resource-dir /usr/lib/llvm-19/lib/clang/19 -O3 -ferror-limit 19 -fgnuc-version=4.2.1 -fskip-odr-check-in-gmf -vectorize-loops -vectorize-slp -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/local2ifelse-a8a9ae.o -x ir local2ifelse.ll
1.      Optimizer
2. Running pass "function<eager-inv>(ee-instrument<>,lower-expect,simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>,sroa<modify-cfg>,early-cse<>,callsite-splitting)" on module "local2ifelse.ll"
3.      Running pass "simplifycfg<bonus-inst-threshold=1;no-forward-switch-cond;no-switch-range-to-icmp;no-switch-to-lookup;keep-loops;no-hoist-common-insts;no-sink-common-insts;speculate-blocks;simplify-cond-branch;no-speculate-unpredictables>" on function "Main_main"
 #0 0x00007efdaf705876 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0xea9876)
 #1 0x00007efdaf703450 llvm::sys::RunSignalHandlers() (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0xea7450)
 #2 0x00007efdaf705f3b (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0xea9f3b)
 #3 0x00007efdae334520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007efdb02d9c10 llvm::GetIfCondition(llvm::BasicBlock*, llvm::BasicBlock*&, llvm::BasicBlock*&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1a7dc10)
 #5 0x00007efdb03e98e9 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1b8d8e9)
 #6 0x00007efdb03e5933 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1b89933)
 #7 0x00007efdb03e4630 llvm::simplifyCFG(llvm::BasicBlock*, llvm::TargetTransformInfo const&, llvm::DomTreeUpdater*, llvm::SimplifyCFGOptions const&, llvm::ArrayRef<llvm::WeakVH>) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1b88630)
 #8 0x00007efdb07e6fef (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1f8afef)
 #9 0x00007efdb07e6925 (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1f8a925)
#10 0x00007efdb07e5862 llvm::SimplifyCFGPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1f89862)
#11 0x00007efdb0b46bad (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x22eabad)
#12 0x00007efdaf88c5f9 llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x10305f9)
#13 0x00007efdb18ebc4d (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x308fc4d)
#14 0x00007efdaf890234 llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x1034234)
#15 0x00007efdb18eba6d (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x308fa6d)
#16 0x00007efdaf88b3f9 llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) (/usr/lib/llvm-19/bin/../lib/libLLVM.so.19.1+0x102f3f9)
#17 0x00007efdb825b711 (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x1e49711)
#18 0x00007efdb8253f7b clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, 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*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x1e41f7b)
#19 0x00007efdb85ff417 clang::CodeGenAction::ExecuteAction() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x21ed417)
#20 0x00007efdb90f8a95 clang::FrontendAction::Execute() (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x2ce6a95)
#21 0x00007efdb9068a34 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x2c56a34)
#22 0x00007efdb9175bee clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-19/bin/../lib/libclang-cpp.so.19.1+0x2d63bee)
#23 0x00005606fedfcc25 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-19/bin/clang+0x11c25)
#24 0x00005606fedf9b35 (/usr/lib/llvm-19/bin/clang+0xeb35)
#25 0x00005606fedf8cfb clang_main(int, char**, llvm::ToolContext const&) (/usr/lib/llvm-19/bin/clang+0xdcfb)
#26 0x00005606fee06f96 main (/usr/lib/llvm-19/bin/clang+0x1bf96)
#27 0x00007efdae31bd90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#28 0x00007efdae31be40 call_init ./csu/../csu/libc-start.c:128:20
#29 0x00007efdae31be40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#30 0x00005606fedf77c5 _start (/usr/lib/llvm-19/bin/clang+0xc7c5)
clang-19: error: unable to execute command: Segmentation fault (core dumped)
clang-19: error: clang frontend command failed due to signal (use -v to see invocation)
Ubuntu clang version 19.1.7 (++20250114103320+cd708029e0b2-1~exp1~20250114103432.75)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-19/bin
clang-19: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
Thanks.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzkWl9v46q2_zT0BRHZEDv2Qx_SdDJTaUYzaufs_RhhWE44xeALOG33w_nsV9hO42Qyf28fjnS3Ku12AevPb_1YYNZw79XWAFyj7AZlt1e8CzvrroU1xjrNkvKqsvLl-oNCdIXv8I7vATsQoPYgcdgBrq3W9kmZLRaO-x3mRmJwzjqsTG1dw4OyBtfONth1xvQTNTdbbA1WZs-1kvjufobv_Cj3XdtaH7XbUeXJTMTWcW7YKY-FNV5JcMPkCjDHVbdFbI2SJUqWtg1kD07VL_hFgZb-zOHBTWswx1sw4HgAiWda47t7XCsNiC0HRShPxp9k-eXDHTZWAgYTnAKPpcXGBtzwIHa4dSBBgPfWeURTlCwxRjRLMGK3uN0prBjFKLuJwjRCimgGzyC6ABtVY5Td9sJhAh0nSLXvR5Kl5hXoUTT9U1gTxoDTErEl1lZwTVUN2sNM6yjqo42_KNN2ATdWdhqw8rhy9hHM4O000ruYaLs16h_AYcdDj97dfVwypiP6V3UBqxqrEOWuMzjsnO22uyGbJC3xkwq7c6rYpuFGjgDnyetc8pl943vvzMGfSLxLvIu_VFw8BscFvOp9jeWJu0i9GL7dg3NKxgVRz4hD4G4LAQenWg2Dy89FvsnnpBVEK9M9k63pYmbI36MGIMPaITVfPr5bPrzDvqsaFQYiYgetdSFycxdC66NbdI3oeqvCrqtmwjaIrrXeH_5HWmf_DSIgulbed-ARXfcbShmhOzkEPuyJY6x0FVnXOhtpBxJ727lBHFdy761QPbNjcrxwqg0zlCwfAhePWHZNO6CVzHD_3xdnt443mLtt14AJ0WuM6LrzLnqpqoOvaYnoulIG0fWwcYkQKSYjgpfAI9CoQGz1b0yiXakc5gQTqTyvNJDaAWAiNHBHuA-kgto6IDFSMPI4r7fe72sFrhcL7iTZc90BMbwBj0nDlSFxD_eCc0ph0jiIslibYhZB41YJTFoliIY9aEyHP5QnrQJMmtrxBkhrlQngELs11gAmdcPDjoBzxmJS1y2JG9FxERC7tQaT2ljibGci20ici0kTi1ZwnQjWEa4V99HfujNPykgSYoQesVuKyUBJItouoknyOSahM9AL-noVPZZQddstuDjUE_x2KytM6l5OhG1apYcwpYp-I7p21gZMahFpzLfwo0kOBjZF-fdJMPzdkwDR9biLSd0XHKJV3A9RWG9NJ2LivLIGsdv5jM5STGr_qFpipSNiB-KRKEO2TY3JHiJE6h8g2trWTwVet5jUXErn1RaT283m_Wq1-bD8693m9u_l_ZpuVuu7zfLhE2K3KSY2uh6aNro6IQLhBS85zCwmz1i5b-pOskzHPfG5DapR_4BDyZLO8P14jrXce4worTsjQh_TCnjMhTJ7xN4hWgAQ1Wc77iTEVr10pe0TOALPbb_VV141rVb1i6i3iK0qazrfryJh58DvrJYxDMRujCW1dU-R7P5JBbGLdJPDwChw3GyBBEuUiBt7MhJsxPGxi9JHgHZAdZiys8qHyIPGmt70KPfKPJ6LfQui0zwAqbQVj71oDKB3h1SOG7EbFbxO7kw8GpU4EDzi4J3liK0aK_vFMfwoBu70CxEeXgETXGuvAhDfahVC5DktEaXx7B7rN6L0PH-UomTJxhSe5-z_K-g9ZgfCRiA-cWU2sVwOeGFEWYKT5yRJkgXUkteLJCsWOe6PKbZEbOlf_PDLF6dM6M-Rr8NJVBwnOf60sT444A2ieTyNlAmIlhjR4ienyWx2HFLVx49_fZp5O0vLWYroTfIMvCwWeSTA4G165i2bZ8klb-8786C2husP3EgN8X5WvJFDi3mWHB2i5_DVrHqTsGtWHa2wqRVgbJ7RZLQyKBlP4NfjdxgQUWnea5zTjE7cnk8UVgmVpUinOL6HcFevrJGqL3XTXN9wr8RNJCaiy5jq7w7lPxt9g3SkfCFFOgksOwmMQVnAW5ipCllAeTSTn5nJSsbexExZMnY0szgzM8_ZCd3HsrBav__VHH3t7xlfHTc-frDdmdr2X1bhm3zd2uarA_hXK3m8BZ0rejjajiemNf47epbO8Zd7qBFbHYV_A3_860NfpN4mPUXOJiwoTnBbQF5D_QZm6oLXUB_NlOdmSpq9jZmSZoOZWPOSMzNZkdPLmfjC_VgAXXe6bdeHa8s36TFcv3jlP3ETrzMnWXpdFPP0Rhu2Lsoip8fg0pPgqnlecfl_N0Mp8IrLo5nTOl0UIqvLCQoRuB8i8EeYxZ__6mQkLMnq8ojS9Jyp0gIqMX-DZLCkqMV8koz5aTLKJB5Ix0g_9be8r_YQcUzOUvI29E8aF_AcFvwWmuOSN8VyTtn8GGR2jiXP3whLnk-wzM-IXbFfIvYBst_H63uk_u9IAq3ZlNAnB2hBs2qRpr9tZniwEm17agvm5SJNj7aKM1usXlTDw9gQ7btGhZvhfeNzF9ouIFpMhm8V3xrrgxL-ndkqc4ByMuUDcAnuAbgTu0uH7mTqykp4D-Yns4bbwE8mfeRm--Mj_iE4ZbbxjD8RHxixPFM4grC8UFnvTHCdV3u4h3plwpdwSph9PR5va6Xh4cUHaIaPRuyDHEY6o_6ng017tjJ-orRPTgXYHD5UJosk1LzTYSNBQ4CfLBz2wMWQVtb4rhlvS7_P5-8SLa0X1ZFoJ9eOIqvrebq4kPsR34F7w7PzAfI_-ha67B1NQc7Txat39OS2UibxMpNNvVs7a8Ix_VP33tYxATkvj9comp46lheczU9ha1qlwd0ZH7gZHpa_Re77kfxZDfue81nOJ6cJpSfOp4usAjgpLoObxxj244vnqcvfxPiWRKUyZxXA0enDdSLLk7wGWQtBMyxEOj5BFBc_EsSOu0OdWR522omMrvDeKvnLvo-PlXErpWJysabzM__Kiv3K_f2oDyo2UZedqStEPR4Ah4D7Z5EhnN77848za_Uqcuo5TCrt74UoRX0sFTQ_cQmSvC5zHJ35PdiqusyPShenrxFpJcsEbzaRFxsfuAsbwbXuY8aRNsJ3Bwb5Fy-h9YiuTRv0SKbzRbMdYsusQGyZ5qPJ4twkzBPcL1BGhXMrw69RNelVz0TURaNGmoway0saT4K45P9FzWxRRocHxa8PagcWLBYiw4PK3wJdLMTIrUPD7KSx1xleacDB4rGlOOmz4QfYNmDC2I6NR1s0LayDvgkE8geKh_5OPda2g1Zcc6VBYtn1Nn3_uBaVdh4w2fcyAKwmdSda-FfVmdCNOsduAI4FY7YYwLhB9IYmNEvSdJ4mjNEE0RshF0mR0BKSipL0P_Dcpv-ZTJozOluM2Aw3mOj3hSZUHN854BL3bZ84q7VePaNk2RdArUHeKvfTptcpUsbGK8ISy9cLG25832181_eYx_Zy_wB9qVdX-LinCTZ2Mt4ns2_W-tlZO_PrjptHP7uS10yWrORXcJ0uWEEXGaPZ1e6aQzbPJK8zWsqE1dm8YAsh0mIuZJbJgl2p6wE8llCaZjSbZQUVabaAjEu-qBKG5gk0XOlZDHtm3faq70hepzRLKbvqO8--_0cDlBp4wv0oohRlt1fuuseq6rYezROtfPBHNUEFDdd3r_38Y_v2AGjPhM_sqnP6-s_7pqOj-2v6vwEAAP__nE4irA">