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

    <tr>
        <th>Summary</th>
        <td>
            `lli --force-interpreter` doesn't use the interpreter by default
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          Il-Capitano
      </td>
    </tr>
</table>

<pre>
    Running `lli --force-interpreter` doesn't use the interpreter, unless `--jit-kind=mcjit` is passed as well.

The check at [`lli.cpp:457`](https://github.com/llvm/llvm-project/blob/main/llvm/tools/lli/lli.cpp?ts=4#L457) doesn't check for `--force-interpreter`, when decidint whether to run the orc JIT or not.

The issue can be checked with the following file:
```llvm
; test.ll
define i32 @main() {
  %1 = alloca {i32, i32 }
  store { i32, i32 } zeroinitializer, ptr %1
  ret i32 42
}
```

Using WSL2 I got these results:
```
$ lli-15 --force-interpreter test.ll
$ echo $?
42
```

```
$ lli-15 --force-interpreter --jit-kind=mcjit test.ll
LLVM ERROR: ERROR: Constant unimplemented for type: { i32, i32 }
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0.      Program arguments: lli-15 --force-interpreter --jit-kind=mcjit func2.ll
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm3sys15PrintStackTraceERNS_11raw_ostreamEi+0x31)[0x7f6efbbd5da1]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm3sys17RunSignalHandlersEv+0xee)[0x7f6efbbd3ade]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(+0xf022cb)[0x7f6efbbd62cb]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x14420)[0x7f6efacb4420]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xcb)[0x7f6efa7a500b]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x12b)[0x7f6efa784859]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm18report_fatal_errorERKNS_5TwineEb+0x1c2)[0x7f6efbb0b7d2]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(+0xe377fe)[0x7f6efbb0b7fe]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm15ExecutionEngine16getConstantValueEPKNS_8ConstantE+0x1aeb)[0x7f6efd5fba2b]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm11Interpreter15getOperandValueEPNS_5ValueERNS_16ExecutionContextE+0x49)[0x7f6efd605f69]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm11Interpreter14visitStoreInstERNS_9StoreInstE+0x41)[0x7f6efd616a51]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm11Interpreter3runEv+0x3f)[0x7f6efd620bdf]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm11Interpreter11runFunctionEPNS_8FunctionENS_8ArrayRefINS_12GenericValueEEE+0x34)[0x7f6efd625a94]
/usr/lib/llvm-15/bin/../lib/libLLVM-15.so.1(_ZN4llvm15ExecutionEngine17runFunctionAsMainEPNS_8FunctionERKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEPKPKc+0x3e3)[0x7f6efd5f87d3]
lli-15(main+0x237e)[0x55b295debd3e]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f6efa786083]
lli-15(_start+0x2e)[0x55b295de6dde]
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy1V1tz2jgU_jXwooGx5fsDD7k4W7Zpm4Fsd7YvHkmWQa2wPJKckP76PbICBJKHZpcyjG3dzvnOdy6SqKqfZou-bUW7QqM0kFKgyaRRmvGJaC3XnebwhBFUK27aEc4s6g1Hds3Rywn4CvWt5MY4KZPJd2EnP0Rbj6LrDYOGEyAM6ogxvEbEoEcu5XQUXI-CC_-8B4FszdkPRCwaJZcezJR13Si6iJMM2qPkeoTztbWdgb4RvoH_Sth1T6dMbaAh5cPuNem0-s6ZhSaVisJrQ0R7mGOVkmZoCv_0mm4siL6ORzi6dTpx8cJsjw648Sa-RZKj4XHNW1RzJmoYcy2gSiOrkO7bgTZYh_6c38Mbtcq-IkEY0wMVpEX0mRFg7BHMHBY3Skr16LzVCMkdDX456B7-g3m-K7pElhs7ldJ31LwRLciPMBrFgacjdyaOsks_A6ERTkIEDCACahhxQzDfmTUsy653E41VmrthdDyOfnKtRCusIFL89IHRWT0I3q0FtobpMX5GuhO7t-IlJ38ZZ-3fy1uM5milrKMBAlBz00trXjPw3MQxAq9OwuSteD4mxs3lbK0AZAwh4Dv34N7C9D5lr9PhWP_t7ddPqFwsvizAmsPHlWqNJRBDfSs2neQbDjLrIQDtU-d8_wb_XuLdbXmxLJHp6QaUEUT7FRDWKW1dIL47g4aQdNmCSFtD2jPZ174EME3MGlHCflhNGH8O5qWFDlT3m27vnmCKht-dVitNNojoVe8McjjeyV3TtwzvyTvoGpJE9RaZpw1VErVkw6Ec4Zy3podgfVI9WpMHjgbr_CQXomCQG9Po7uL-g8tKw4cgQ7x9EFq1DiZ6IEPaO1dVy38-XX65nX8rF5Vb4mobsNopl-_wAdUOF4e4xDe90Y5TQXfMhokrS0M5mk4PQ4I68TA6NWoaAvDq2-fYLYjMkwmTOw0KBnPvHdfl4vOyCkNNHitlrOZkU0Ipuwy2Uej0J_CVNSlvKK2TmoSueJ4XUAb7xlKsWiI_QFhIrk35MADg_BRARGp-FgCD_CbAmNFTHanre6HDi9jmaZXGEynafjtZtb0f6OwaCKud1GAnNYxjHBwJJYwOfb8olDlxKYhbmYGVQeoJTpKRJAh-GedeJKGQux4mPpWYx3lSnNW9Ye6LRdUQS2TFtVa6XHyEeEvuYe_hJfVQGD5xQkCzGp_P0TzKsuY0mEBHc55g2publFvOeitUW7YrsC9MV9zuyu9XInte3jnr811f6e0n_NgXddJQgul5wYXzQzkMEwD2peMaEu4Zl3OK_xzqQbo3BbBavn2GGhfHQNMgadIzB80R0PhBGAHVCk4Jc-BsAFccmh5UeAIqTEly3kJ1BCqCE9hziYqaE9U4oHXzG_kIQfcNbFxDkDmn5fuWa1xoTZ4WvJk7H-I_eMu1YN6tpScrik8RJ6SIf3MeZC9QX5hPcGQ8wb74uLTpA5wSlAboNqsqtt2GIRQpYgSrYF-Cw9ucLW0YsjXRFZwShDVzVi4JPEr3WhZVCel195F5O3l0mlN5Vkd7Q_1ZAVD7AyxMw1G2rxFJQnGR1By2HP7uIltVrgWgCZS-vfgmOq23aZC_gcev84he4Unrlxvg7vQ45rMwTeMkzrIkG9ezqC6igoytsJLP_sdtDNEnuIE0BA7I417L2X8_8CV5kIfj9SwrcFFQ1uRp3kRFTYMwxizMWZhGUdbQZCwJ5dLM3MUN45Y_-msMfIPVYzHDsGUHReSWgbumAaVZhtOA5TSIScTgPsKBcDl1OKZKr8Z6NkCCg6uBQSmMNYdBuEXCDsv5oA7kkx4Ofno2l5Mr0gko0Go8qJ8N8P8FCgmILg">