<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/63015>63015</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
`lli` crashes on input containing UB even with `-force-interpreter`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Nilstrieb
</td>
</tr>
</table>
<pre>
```llvm
define i32 @main() #0 {
%1 = load volatile i32, ptr null, align 4
ret i32 0
}
```
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: lli test.ll -force-interpreter
#0 0x00007fbfe9a8f242 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/nix/store/5z3s7ar2k045d1igx5kv5g7wpfcwql4n-llvm-16.0.1-lib/lib/libLLVM-16.so+0x10be242)
#1 0x00007fbfe9a8cb74 SignalHandler(int) (/nix/store/5z3s7ar2k045d1igx5kv5g7wpfcwql4n-llvm-16.0.1-lib/lib/libLLVM-16.so+0x10bbb74)
#2 0x00007fbfe84f5bf0 __restore_rt (/nix/store/vnwdak3n1w2jjil119j65k8mw1z23p84-glibc-2.35-224/lib/libc.so.6+0x3dbf0)
#3 0x00007fbfe8260000
#4 0x00007fbfebf46373 llvm::orc::runAsMain(int (*)(int, char**), llvm::ArrayRef<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::optional<llvm::StringRef>) (/nix/store/5z3s7ar2k045d1igx5kv5g7wpfcwql4n-llvm-16.0.1-lib/lib/libLLVM-16.so+0x3575373)
#5 0x00000000004274d1 runOrcJIT(char const*) (/nix/store/l7nlr0cnb39mh4hy5yywn81c4qr07b0v-llvm-16.0.1/bin/lli+0x4274d1)
#6 0x00000000004145f2 main (/nix/store/l7nlr0cnb39mh4hy5yywn81c4qr07b0v-llvm-16.0.1/bin/lli+0x4145f2)
#7 0x00007fbfe84e124e __libc_start_call_main (/nix/store/vnwdak3n1w2jjil119j65k8mw1z23p84-glibc-2.35-224/lib/libc.so.6+0x2924e)
#8 0x00007fbfe84e1309 __libc_start_main@GLIBC_2.2.5 (/nix/store/vnwdak3n1w2jjil119j65k8mw1z23p84-glibc-2.35-224/lib/libc.so.6+0x29309)
#9 0x0000000000416ba5 _start (/nix/store/l7nlr0cnb39mh4hy5yywn81c4qr07b0v-llvm-16.0.1/bin/lli+0x416ba5)
fish: Job 1, 'lli test.ll -force-interpreter' terminated by signal SIGSEGV (Address boundary error)
```
(on x86-64 NixOS, lli 16.0.1)
I also tried this
```llvmir
define i32 @main() {
unreachable
}
```
```
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: lli aa.ll -force-interpreter
#0 0x0000ffffa996ac40 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/lib/aarch64-linux-gnu/libLLVM-14.so.1+0xe3ac40)
#1 0x0000ffffa9968c40 llvm::sys::RunSignalHandlers() (/lib/aarch64-linux-gnu/libLLVM-14.so.1+0xe38c40)
#2 0x0000ffffa996b200 (/lib/aarch64-linux-gnu/libLLVM-14.so.1+0xe3b200)
#3 0x0000ffffaed6f7dc (linux-vdso.so.1+0x7dc)
#4 0x0000ffffaed69000
fish: Job 1, 'lli aa.ll -force-interpreter' terminated by signal SIGILL (Illegal instruction)
```
(on aarch64 Ubuntu, LLVM 14)
I'm not sure whether `lli` is supposed to deal with input containing UB, but at least with `-force-interpreter` i wouldn't expect it to crash. The crash message also tells me to report a bug, so I did that.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUl21vIrcTwD-NeTMCeW3v0wtekFy4f6q0PTXXvkW217v4YmxqewP00__lXRIelKTSqVepCMHih5nfzHjGAw9Bd1apOcpvUP5pwvu4dn7-izYheq3ERLjmMEcFHt_GPG8Q_oTwolGttgo0JYAY3nBtEakQqQERigGVN-MyAETyDBD9BMbxBp6d4VGbYSMit7CNHmxvTHrmRncW2MtGr-IgHo8DqPx0fHiBefPnl4e7xeMdhF5sdAQOou_Aq63zEaKDdYzbgOgCkSUiy07HdS9m0m0QWQ6mjV_TrXfflIyILHUIvQqILIHbBrSVpm8UxLUC6XlYg-DyKXou1WxU_xi5fIKm32yTlmEIz2B4ffGu83wD3Hf9RtmYOMAYDVGFODMGpq3zUk21jcpvvYrKH10xuBTvMca4bEWral61hBEYkOkC0UU4hPHhi9c2DhBfExUi1WmR57uVC9ErvkGkSB7XNo4hqxBZWr1HZBmi8wqRZf4XDSX35AmzvMl0t8-fnvOu3G1bufvTMDsdHJUVMzzLpkaL5LqXz4eHP35OU8EhcoP3GRaKMIJIfbInu7JHipLBo-4sN__jtjHKI1L9a3hClOwCj5zjVazNRYthtfJq0L_y8U2oZ7tr-BO12Y58-6ZNltXfivyp2uyyvwjdVmzaGS3klMxoPiWEnTPJWXCzYuChjWjxBQ29oCFFeobTNDufFi0raEnPzobz8hj_3i7Cz2Omans0YZE0HV19C3LN_TA2Dt-eiVl4zw-_qRbR2xCbcWy1kvt9lo0_BA9arlLZsB2it6OoW3hdnAZW0XOdTv44Te8uVnBjnOTR-bP58X2-ym2jdpYbRG9PdI-D2gHv7l84MzQvc1rSiyjlxzCML0ZK1mTge_urlz_df0WkSiaBdDbE0b9vQprSGo-lFbTerNn6kB8OO1tlkv3pcSnw8zkkIkuRork0Rg9Yo9ILquKSKmN5SyCV6x-gfRB-ob28zCOVEaZgtUoHfhUi93EluTGrd3n-mYwiNWHqgqu65qK4vuQabjSGPz_c39yuyIzM8h8KSHF9AVhfha0QPIcR7UcELol_1d_qsE53009OQJZSD5Hyb-4pUkJUfqMtj6oBcYAwlHJ4vP_8ePf5j4S8aBqvQgDhettwfwDlvfOvSq9vdVI5C_uqmBYMftH7Xx_HaqThxYaXfcPnPXATHKSWpYG41uFKaLJe-7_rXF6blt56xeWaC6P-880HwvW7nQfnH_UdZ21H27Ytr-uCS4b_4bZjzAfOvVwXbGq07ffTzvbnZZelTMmGo6poQjhF_9RJvCBW7yD-1tuL_iK89qvfQ1FdUZArCkHSFf1dotPWc9H0XLRqirZsZBI9SnpugjvtLht5vpVdba1PjcN7Sf7ukfggxe8fHhLQvTGq4wa0DdH3Mt3SH6f30Sfwu-ht7BNEcgdk7Dq7ESk3YF2E0HsFu7WKa-VhyGuNCgw6QOi3WxdS9jtoFDew03EN2m77mO7cyLXVtoPfb5Ia0UfgEYziIY4LUYHfsDmJhp3rTWMRKSOo_VbJCHpI5yEHZ_D1NR03KgTeqWMpUsYE2Ki08lgChnowtDIO7qHRqVLxOJs0c9rUtOYTNc-KKmdFiXE-Wc_znDRSyKphTVFkmWwbktdFQcu2YDku2ETPCSYU5xRnZUZJNRN1WxPFirIo20ZyiRhWG67NLOXDzPluMpSUeUFxlk8MF8qE4Z8fIVbtYJhEhKQ_gn4-FCPRdwExbHSI4SQl6mjU_OT_wX4VwNm3PA7qWdmP3TzpvZl_f30c7Pl_AAAA__8mUWnD">