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

    <tr>
        <th>Summary</th>
        <td>
            Segfault on incorrect phi label
        </td>
    </tr>

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

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

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

<pre>
    Clang segfaults when an incorrect label is given for `phi`. 

```llvm
define dso_local zeroext i1 @f(i1 noundef zeroext %0, i1 noundef zeroext %1) {
  %3 = alloca i1
  %4 = alloca i1
  store i1 %0, i1* %3
  store i1 %1, i1* %4
  %5 = load i1, i1* %3
  %6 = load i1, i1* %4

  br i1 %5, label %8, label %7

7:
  br label %8

8:
  %9 = phi i1 [ true, %7 ], [ %6, %7 ]      ; incorrect label, first %7 should be %2
  ret i1 %9
}

@.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
declare i32 @printf(i8* noundef, ...)

define dso_local i32 @main() {
  %1 = call zeroext i1 @f(i1 noundef zeroext 0, i1 noundef zeroext 1)
  %2 = zext i1 %1 to i32
  %3 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 noundef %2)

  %4 = call zeroext i1 @f(i1 noundef zeroext 0, i1 noundef zeroext 0)
  %5 = zext i1 %4 to i32
  %6 = call i32 (i8*, ...) @printf(i8* noundef getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 noundef %5)

  ret i32 0
}
```

```
$ clang -o test modified.ll 
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/bin/clang-14 -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name modified.ll -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -fcoverage-compilation-dir=/home/steve/Desktop -resource-dir /usr/lib/clang/14.0.6 -fdebug-compilation-dir=/home/steve/Desktop -ferror-limit 19 -stack-protector 2 -fgnuc-version=4.2.1 -fcolor-diagnostics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/modified-f922e3.o -x ir modified.ll
1.      Code generation
2.      Running pass 'Function Pass Manager' on module 'modified.ll'.
3.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@f'
 #0 0x00007f9ee2ad545a (/usr/lib/libLLVM-14.so+0xcd545a)
 #1 0x00007f9ee2ad2aef llvm::sys::RunSignalHandlers() (/usr/lib/libLLVM-14.so+0xcd2aef)
 #2 0x00007f9ee2ad2c3d (/usr/lib/libLLVM-14.so+0xcd2c3d)
 #3 0x00007f9ee1851a00 (/usr/lib/libc.so.6+0x38a00)
 #4 0x00007f9ee32fe174 llvm::FastISel::handlePHINodesInSuccessorBlocks(llvm::BasicBlock const*) (/usr/lib/libLLVM-14.so+0x14fe174)
 #5 0x00007f9ee32fec4c llvm::FastISel::selectInstruction(llvm::Instruction const*) (/usr/lib/libLLVM-14.so+0x14fec4c)
 #6 0x00007f9ee34a954a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/usr/lib/libLLVM-14.so+0x16a954a)
 #7 0x00007f9ee34ac12a (/usr/lib/libLLVM-14.so+0x16ac12a)
 #8 0x00007f9ee5e94c77 (/usr/lib/libLLVM-14.so+0x4094c77)
 #9 0x00007f9ee2f22b0e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/usr/lib/libLLVM-14.so+0x1122b0e)
#10 0x00007f9ee2c426d0 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/lib/libLLVM-14.so+0xe426d0)
#11 0x00007f9ee2c42814 llvm::FPPassManager::runOnModule(llvm::Module&) (/usr/lib/libLLVM-14.so+0xe42814)
#12 0x00007f9ee2c440bb llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/lib/libLLVM-14.so+0xe440bb)
#13 0x00007f9eea49f767 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream> >) (/usr/lib/libclang-cpp.so.14+0x149f767)
#14 0x00007f9eea77fe2f clang::CodeGenAction::ExecuteAction() (/usr/lib/libclang-cpp.so.14+0x177fe2f)
#15 0x00007f9eeadb3f39 clang::FrontendAction::Execute() (/usr/lib/libclang-cpp.so.14+0x1db3f39)
#16 0x00007f9eead53427 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/lib/libclang-cpp.so.14+0x1d53427)
#17 0x00007f9eeae0ae7a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/libclang-cpp.so.14+0x1e0ae7a)
#18 0x000055a6162956f1 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/bin/clang-14+0x176f1)
#19 0x000055a616297337 (/usr/bin/clang-14+0x19337)
#20 0x000055a61628b216 main (/usr/bin/clang-14+0xd216)
#21 0x00007f9ee183c290 (/usr/lib/libc.so.6+0x23290)
#22 0x00007f9ee183c34a __libc_start_main (/usr/lib/libc.so.6+0x2334a)
#23 0x000055a61628d655 _start (/usr/bin/clang-14+0xf655)
clang-14: error: unable to execute command: Segmentation fault (core dumped)
clang-14: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 14.0.6
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang-14: note: diagnostic msg: Error generating preprocessed source(s) - no preprocessable inputs.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUWV9z2zgO_zTMC4YeifpnP-TBseO2M-1tp7nZvXvy0BQkcyuROpJK0_30N6TkWHKcbbp7L9fpJBIJ_fADCIAkwq2VtUK8JdkdybY3vHdHbW7_vbk56PL77abhqgaLdcX7xln4dkQFXIFUQhuDwkHDD9iAtFDLR1RQaQMkj7qjJHm0ABJtSbQef-bR8L9pHtthqMRKKoTS6n2jBW_gDzQanxzIGEgaVYQtZQxK96rE6nmSsCwibAPXp2LCVkCKu0ED-KEESLIF3ngdIOPJTHp9xjptMJB4VkXYOkBdE4lnIukEPwv4jeZlmL8GRFiWvyqVTh0IcDCjxsxLDa4nLFvO3orpNwVJpl9PPpkILSdChGWrQKc7yqAsuwNnevQqPDiQbBues7tAfToO4R9J7i7jwwtV0lg3iNqj7psSDuhf2UmzQTdatxrJFdtZ_KTRwjozkDPykTuEXineYrnnZWlAaGUdV85zS-EJ5NJzEoQxwrKSZJto7X9EYWADvJG1gvgUiaLhfkET5iOvM1K5EH5LvxJjmPmvFosFYasprxdBPGK0XCrCli_DMQ4mCN68Md5fC_b4mUiAZQH2jxOc1-O0J_MiE4LqwHI08GzY68ZDjQ4bbFG5zhmQ6uDHrceY-nuMjcn7GsaVC2bk6WjP8LAKzwl71hIiYu7gSab-fadFc6dll05LXzot_39wWvbCaSGfEgbRZTad6vDV4jy-shREqP1Ug0ProNWlrCSWi6YZq_o3bpRUNUnWoB_RGFlKVYM7opftGwTHTY0OnJFdg_BNuiM8LfN9ntJO0Eaq_onWqveG099GBKTDt94HQcnnj_frh3uw_aGVDjgc-hoMdto4v05H5zrrixfbEbarpTv2h4XQLWG7sMkMv2hn9O8oHGE7aW2PlrAdcFX6KtX0JQbOwnB7hAMXX53hIpS7zmBntEBrsQSrezMM-y-5tVpI7rAE0yuwwsjOLQbKD46Lr1D2bfdcVqMFfDa6NrwFbureh4OnDYTtemsI2x18qdgFj9M4BSpEDHR03DWfUWylo_rwO9DWYMOfqI9Oenox6CuRk1pZoKW0_NAgrQwiUNEgN5RbRw9YaYPUm4yqPMsFlz2i8cttwrDgpqSPvOmR-nJrgfraRivZDAOz4AgcRu1-NbGBTgqgnRS0wUdsgA0v0tJOItC2MrxF2mmpHBqSbIMpVcvdkaIxSgOtqo4KrfzKOJJstQJaKU2ND3-pauplgbZhAzC9cNpQ3khuPdWqV9-kKqnzxlmSbBnQITKp6HrvXZqnQF2vMAzUqNB4wq13hF8F5I5awZvBi_IJS8_L67B0TAKgJR76ukbjgUJWbOvyALQSPrJ5jVTotpPN4JZSejsJ2x11i4TtrMNH_3uL9qvTHVCDQ7x5yXOUNPJwihLCdnG6iBY50Cqo_jn8ajCgkT6r4hVQ64PWJ4pD7z6_RlWteuEDwUqtSLJNF2wRB4sabWgpea20dVJ4H_v918oa6Ha_f7fZ7N-vf73fb39bf9mx_Wb3Yb9--ESSbeyrCWE713aE7U5BQ6sVY5gsNNAnkGYaTEP2xIvhYLHRJQ7LE6wcJtk4-aVXYSE6bn15LXa9El4KPvuBT1zxGg1hBWh1qk-EFVNdrBgTOHkF8l_LHLbrd5Qk99v1O_gwBptX8oANhqdRQ3XSTlgx7FHjqQwISyKInqIoiopqhch4maUZDzvCfJ0befj48ddPNE4XVhN2Fz2JIHrewAhL4gssxrGCUPuSNUnW9rsdHr706kHWijfvuSobNPZ0MnmTWo86U8su1YqkfCuWSMoZVjLFipdZzKPoOpZYWL3IA06y5FE0g0mnMAmrMC7SiSd23LoPD9gMb8fghc_vP_xDl2g_qIde-DqvzV2jxVfvnPOXd9xKEcaHE2bY-t_muTgNNGY8s0ueIhWv8rQhriaRNmM2jcC_Qk2kYkYtn1FL-SpL-YTac5Bv1-_OFIfRddOc_TT333MmjhTzN1PMA4MZxeKCoojZ23InzoPsDGw5BctwlYqieBNYGgXZGdhqlhIVY4cIJ877xMVRKjw5w1elYcL06hd1Gr7quJ9xWRz0ns-CLInn5UakLC-jacB99lxOBfJ_TwmDwhmj-JLRMk7fwOjTcDSc8jkN_QybZZzO2LALNml0OEzYNFhz8X14nvD60HbNM7e_y8mrnHGa1USerqoiL4YD-aDjvpXubji4_dK7rneELSfT2_PmfK9qqQY2mynCe-QlmgfkRhx_6Yaj4jlBZ6J-332H6gdS_wxnqh8IfeSqviYyKTLOSFV_GS7bL526vgAcnbAeo3ID1pXDTK_kf3rcd86QZHMGMvzbvvtmpMO99Ue7dvZRiaHRtS-xQYc_-DC5B5Lcv7rKw2ledJ3ftXzMhaoblnK21rONixdFhay64v7RxGH5n1D0Dk9Wv76TX-UwqJhxmG1KvDwkVbKactgZrdzZz1MSP61-QJ-pz-fqsyRlxdwF_myL5kNo8Ai87oXX-f5JLl6nGBjMKM42Ho4Rx4LPMnIgc2b6ON6B5sReWPInO_ZVaoPmGbXTNpZlPI9ztsryKgYh4v3YgTrH8NoY_t3nVrIRR27OhwYfxhuYj7ENPGpZXmE4v62OQZVX8YzV6oJVkSTFD1FWSTJzO4vmKMsDi3Pwdv0IqmRxPkOK58fMRLDVj4-ZLGGr2d7F2CVMknLY7_1ne-u4cfsX7K4DJ-lsFVlyYWmZZxkMkD-ytcon7Z_nmWQN4ZbnH3rlL6_gNOAQpyB023Llyx48YN2iciFaIdQ_r1Bog6GLgeWfYw99omrMuBMwVFw2WELZB7U2XD48bm8R6GMYQwQ5yZOpEhjvnTDccoeZYYvxOq_0REaRo0FeQug7eMFOW_k0TIWUaxost9K8aL68ME9pX__XcL7nQmtDs-veG_58D_X3w2t9oqX1WUNB6cl8WASput7ZxUXf7aa8TcpVsuI3eBvnRZQXURGzm-MtLlcsZod8meV5ksdpfMjjKEaRH3iSZGlxI29ZxFjM4iiO4zgtFmleLnO-rHi-LFFknKQRtlw2C18IFtrUN6ENdput0iS6CQ16G_7-w5jCbxAmCWMk296Y29ANOvS1JWnUSOvsGcVJ1-Dtw_jHIX_tPbf9u6McWv83vWlu_3qfLnD8bwAAAP__DlrqcA">