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

    <tr>
        <th>Summary</th>
        <td>
            Segmentation fault while compiling `va_arg` instruction
        </td>
    </tr>

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

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

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

<pre>
    The following LLVM IR causes a segmentation fault:

```
; ModuleID = 'test.d'
source_filename = "test.d"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"

; [#uses = 0]
; Function Attrs: nofree nosync nounwind willreturn
declare void @llvm.va_end(i8*) #0

; [#uses = 0]
; Function Attrs: nofree nosync nounwind willreturn
declare void @llvm.va_copy(i8*, i8*) #0

; [#uses = 0]
; Function Attrs: uwtable
define { i64, i8* } @_D4test1xFPvZAya(i8* %ap_arg) #1 {
  %ap = alloca i8*, align 8                       ; [#uses = 2, size/byte = 8]
  store i8* %ap_arg, i8** %ap, align 8
  %1 = load i8*, i8** %ap, align 8                ; [#uses = 1]
  %2 = va_arg i8* %1, { i64, i8* }                ; [#uses = 1]
  ret { i64, i8* } %2
}

attributes #0 = { nofree nosync nounwind willreturn "frame-pointer"="all" "target-cpu"="x86-64" "target-features"="+cx16" }
attributes #1 = { uwtable "frame-pointer"="all" "target-cpu"="x86-64" "target-features"="+cx16" }

!llvm.ident = !{!0}

!0 = !{!"ldc version 1.31.0-git-3b7ba6c"}
```

Here is the backtrace:

```
$ llc test.ll
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: /usr/bin/llc test.ll
1.      Running pass 'Function Pass Manager' on module 'test.ll'.
2.      Running pass 'X86 DAG->DAG Instruction Selection' on function '@_D4test1xFPvZAya'
 #0 0x00007f6eac497ae3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xbd9ae3)
 #1 0x00007f6eac495df0 llvm::sys::RunSignalHandlers() (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xbd7df0)
 #2 0x00007f6eac49814a (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xbda14a)
 #3 0x00007f6eab8b01f0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x141f0)
 #4 0x00007f6eac427c71 llvm::LLT::print(llvm::raw_ostream&) const (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xb69c71)
 #5 0x00007f6eacaf1c35 (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x1233c35)
 #6 0x00007f6eacaf5f54 llvm::SelectionDAGBuilder::visitRet(llvm::ReturnInst const&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x1237f54)
 #7 0x00007f6eacaf41e7 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x12361e7)
 #8 0x00007f6eacb82cb9 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, false, false, void>, false, true>, bool&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x12c4cb9)
 #9 0x00007f6eacb8266a llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x12c466a)
#10 0x00007f6eacb803a6 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x12c23a6)
#11 0x00007f6eae69e515 (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0x2de0515)
#12 0x00007f6eac7a451e llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xee651e)
#13 0x00007f6eac5bf58d llvm::FPPassManager::runOnFunction(llvm::Function&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xd0158d)
#14 0x00007f6eac5c4f73 llvm::FPPassManager::runOnModule(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xd06f73)
#15 0x00007f6eac5bfbdf llvm::legacy::PassManagerImpl::run(llvm::Module&) (/lib/x86_64-linux-gnu/libLLVM-12.so.1+0xd01bdf)
#16 0x000000000040e724 main (/usr/bin/llc+0x40e724)
#17 0x00007f6eab354565 __libc_start_main ./csu/../csu/libc-start.c:332:16
#18 0x000000000040c1ee _start (/usr/bin/llc+0x40c1ee)
Segmentation fault (core dumped)

```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMmFtvIyvywD8NfkG2uPTND35wjsdzImX0j5LRX6t9sWiottnBtAV0Ep9Pv6LbN5zMmWxy9hKNejAUVT-KKqpp4b1eW4AZym9QvhiJLmxaN_tjD0orLUZ1q_az7xvATWtM-6ztGt_d_f83fPuApeg8eCywh_UWbBBBtxY3ojMB8TkiC0SOz4Ic_g0_-Q3-1qrOwO0CI77AiJUBfJgoxMpBxLedk7BqtAErtnCQYkcpNkgF4dYQsBJBGLFvu3CUg_EW8TmMd6wkiM856x_xJ01_xlaR9Y-xPjaaKk6irBrbKjaK45wiGz9SVl3bD07vzInxpSpWRTbeybHRtnsZr213mnBef3Q3470D4zyC8sV5cNlZ2TtzHoLziM-xbRsHgG3r91Zi23b2WVuFn7UxDkLn7DBZgTTCAX5qtcIoI8Y8bSdPYgVWIVbpCrE5YlOMGCf_XSDZ7vZnot_wX4nWPQdRGzgCNNoCRuUNjvt7NIVRuYg8q0UWY4q-LO-f_j7fiyMTRiwXu5Vw6wMUjSoGlXgY7FmEMa0U-LQOYfTa4gq__ffGYlic5fUfgNiy3ochiqrTCjH2oXWAX0GdXHbovTB-QUl7daYVCl-7-vW8d9DSCzDEctZ3PomIdEakUeebDv_XDDgIP9k3lh_zqVxcBosIwem6C1EZ42TIyPLm18Ea87ZxYgvjXattABczli8QY8IYxFh_9vTJPpa77jT4UhXjCHc53oAInQN_EkLsRr7Qopc64qag9AR6CN3_NM7hyWifnlqBPZ6kNEY9o-S1KEklEGNGSfwEzsdkpBNOJ2S81mHM67IWhYymT0qu6kH__B1inHscNoBrIX8EJyT8opCwDBsjcV8WjBk67---zB-_YN_VWx2wwHW3xg52rQs4tHgTwi6eEogtY8Z1az_pF93GpFpiYRXWVppOQQ8infCbM85kMPEYhPyBVbfdnfjIBN-7du3EFgu37mI97A8jxJadd9GUtogtX9HSyZALD521sbjuhI8xUZ6OtfvY8U1YsY5hUOLW4m1fO09VM4ZEeSBjP1H3t6rAi_nXMeJfFvOv-Nb64LrBwCMY6FsH7c3RcizGb52QhxI9pBh5IYSQsilAyGxaCuA4-jP6hc_93g-Ne6dt6L32vd9VVp2FnHhetT44EFvEij7TbRhO3Sp6TNeILQ9F9aKixoH4JjKmbOLbCUXshrzUaiqAIzY9I9IrxFw15C3Eh84-6rUV5ndhlQHne_MfpChVQxIKdkVR0Ux8TLWgmUhU80vVdVUT2hC8WjnoK8fKhXfY2YWNA6GiHdLboRm9WkGWroCVsqQXfry7-z40dq7fvj_Z4CmWrfXvwXq9_GIqS5pw5QmXaKjk-UdUU8a55Hmiu7jSnTd5drHmU-Ys5l9vOm0UuGHgSXsdHiB1w0NfaWLmDes_-OJjqGWTZwlqeYWaUSjfjZpwXp4NnwctKJQJaJWA1hWT9fQnoLePYC57b4TX8sa08kcCrI32YaUDOBFah_hv10MKgtAHTbZVsGp30YJPRC-WHc-gRhgPSSO-wiL-JekLroND3_8aT9225jM7JzNZT5Odm17vXFGId-7c3Jjz5vlk906F7tOxJrOiOB-N8egnV8SEi-KXxK6z_2e_CbnRFo5wCfGrsU8gMy6KBDkpV1BMIacfOs6YApLTPNGdFqFSZDkF_NN1xRePC4-86YrP-wCgyCkkmElBk3nd5JW6wFzeR7LjG9G_HVARmlcqAUxLYS6zpuTvABw-eaShdOj6OFzRlDyBy6-9V6vmAs7AWsj94a3sjHm73Z3D_y9GpLVqEsRjWR3-MgIly_BWaHvQf_XC3KsZpBI1ScmreZ7lRY5XK6NrufJBuLDqdU4QW0of8SbnZhQa90ITific9593aHFWXl0xSgqAB7V_ShnlTpSPrz6MxbkyXujj5QEuwiq93ozUjKspn4oRzGhRltmUcMZHm5mgRVMXsqiUzBhjU6pqOmUV53lGRJNlIz1jhHHCWEmmnBE-odMCpkUDqhSKSaVQRmArtDlde0ba-w5mBSWMjoyowfj-YyBjFp5xPxjvbvli5GZxzjhemlBGYik7X55GQQcDszdW_LzRBrBstztt4pUEFWT4YoAKgvW5yo06Z2bp9Wytw6arJ7Ld9j5-Ov433rn2HyADYsuezyO27Pn_GQAA__-a5vy3">