<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/125641>125641</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Crash when using '-mcmodel=tiny' on X86
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ShashwathiNavada
</td>
</tr>
</table>
<pre>
The `mcmodel=tiny` memory model is only valid on ARM targets. While trying this on X86 compiler throws an internal error along with stack dump. Here is the reduced testcase.
```
#include <stdio.h>
int main()
{
printf( "Hello, World!\n" );
return 0;
}
```
Stack dump:
```
0. Program arguments: /opt/compiler-explorer/clang-trunk/bin/clang++ -gdwarf-4 -g -o /app/output.s -fno-verbose-asm -S --gcc-toolchain=/opt/compiler-explorer/gcc-snapshot -fcolor-diagnostics -fno-crash-diagnostics -mcmodel=tiny <source>
1. <eof> parser at end of file
#0 0x0000000003b10218 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b10218)
#1 0x0000000003b0e35c llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b0e35c)
#2 0x0000000003a5dbc3 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3a5dbc3)
#3 0x0000000003b05cfe llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3b05cfe)
#4 0x0000000000d4e3eb LLVMErrorHandler(void*, char const*, bool) cc1_main.cpp:0:0
#5 0x0000000003a67c93 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3a67c93)
#6 0x0000000003a67df8 (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3a67df8)
#7 0x0000000002549148 llvm::X86TargetMachine::X86TargetMachine(llvm::Target const&, llvm::Triple const&, llvm::StringRef, llvm::StringRef, llvm::TargetOptions const&, std::optional<llvm::Reloc::Model>, std::optional<llvm::CodeModel::Model>, llvm::CodeGenOptLevel, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x2549148)
#8 0x00000000025491fc llvm::RegisterTargetMachine<llvm::X86TargetMachine>::Allocator(llvm::Target const&, llvm::Triple const&, llvm::StringRef, llvm::StringRef, llvm::TargetOptions const&, std::optional<llvm::Reloc::Model>, std::optional<llvm::CodeModel::Model>, llvm::CodeGenOptLevel, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x25491fc)
#9 0x0000000003db74cc clang::emitBackendOutput(clang::CompilerInstance&, clang::CodeGenOptions&, 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*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3db74cc)
#10 0x0000000004460d95 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x4460d95)
#11 0x00000000060005ec clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x60005ec)
#12 0x00000000044614b5 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x44614b5)
#13 0x0000000004737121 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-trunk/bin/clang+++0x4737121)
#14 0x00000000046b777b clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x46b777b)
#15 0x00000000048229e3 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x48229e3)
#16 0x0000000000d50621 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-trunk/bin/clang+++0xd50621)
#17 0x0000000000d48e2d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#18 0x00000000044acc99 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) Job.cpp:0:0
#19 0x0000000003a5dac3 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x3a5dac3)
#20 0x00000000044aceb9 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#21 0x00000000044710dd clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x44710dd)
#22 0x0000000004472071 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-trunk/bin/clang+++0x4472071)
#23 0x000000000447c3fc clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0x447c3fc)
#24 0x0000000000d4d2b1 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-trunk/bin/clang+++0xd4d2b1)
#25 0x0000000000c12464 main (/opt/compiler-explorer/clang-trunk/bin/clang+++0xc12464)
#26 0x00007ae43b029d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#27 0x00007ae43b029e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#28 0x0000000000d488c5 _start (/opt/compiler-explorer/clang-trunk/bin/clang+++0xd488c5)
```
[https://godbolt.org/z/c9qqGav9W](https://godbolt.org/z/c9qqGav9W)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsWU1z27oV_TXwBiMNCVL8WGghy_Z7ySRNxnZf3k4DApcSGhBgAFC2--s7ICnzI7bjdvS6aTPKWCI-7sE5FxcHErVW7BXAGq0u0erqgjbuoM367kDt4YG6g_gbPVJOLwrNn9Yo2NwfAKMkqFilOUgUXTmhnlAS4AoqbZ5w-xgLi7WST_hIpeBYK7y5_YwdNXtwdom_HYQE7MyTUHvsDm1n_GeWYKarWkgw2B2MfrCYKiyUA6OoxGCMNphKrfb4QbgDto6y7xjzpqqX-Hcw4KO6A2ADvGHAsQPrGLWwRMHGv5KgfwUbRCKhmGw4YBRtreNCLw8oukbBRiiHKyoUIhkiue-bXmIUbGojlCsRyTAi5HeQUiOyxd-0kRyREK22ChGC_ZCo7W_ANUbhoP-I0qsxBv_orl2Ax4-iOcBgiYL8q9F7QytMzb6pQDmLog1G5EbXDpGbE1kLeKylNmD8M0nVfuFMo74jclP4VXTPELlE5BIv9vyBmnIR48UeL7SfjNa1n7JxdeOWFi9KpRdHMIW2sKC2wos7vFjsGVs4rSU7eGaiqzdB-M5W0doetMOLkmmpzYILulfaOsH6GMxQe5g-niZVq4xuDINOmNBTgqIt6BJF17imxoLB1GFQHOsSl0ICCjxBUYCDx-D0LyrCgIQZlvJYeaKjjX2y3ZuvXtNWhntDGSCSDZ0Mfdhp6wzQCpHEay2UQyTHbWL85xogchk89pi6BPOIwyniAKIVewnxVgJVTf1F3Ym9ohKRrFHtBubY74zz4WsRDPjIBB9d8YJFI3xbL-YtMH0E87TVysGj61p-p4pLuH4UDpHsnAx2GAaE0YzBFSvhZc01A9t_GOPa4kJreUYGPYIBXzzGF_AYIijwp09_fL72ha2jySCSHbXgiGw8HnagBjOtrOsfnAAyFu58jVqy2teOoP3fhVlNhUpSlo-FMlBr43YldVTu2pI6Sfr7B6HgFDI5OycdnIGTZA6Wl9nZIvFytL_ScSSyivMwHleEP7Pkvj2dPlN2EApeeTqhqm2ZcDVqNKKW8ErjnTNC7W-hfNfjLs6X2gmt7GRG63jXRbeNVKJoO4y7BalZ9_ZzV1Wvfz1oqzn0vecDp51-A_Wldp_gCPLcWdKrM2iX_aRdOa6Nt7AX1oGZCbh9S93rrmEjpWbUzTfB_5X9C5UtR6dKPtn_vEhjxnA3qsUDlXCXlH0Hxb-0BgWRbNS87XF8UNZR5c_vlr1Jj9OCPMfv1euz5o2EUxEeZuuhbJifbTrkg3KmseIIt1BulfvqzIT9Y9kfODdCwt2TdVDNVWuU-NHArp6N9DakfjDCwe5kRkaDOJS0kW7HQYKDXwz0WX_98pK2Wtmm8kJuzlbsOzl7D02icGLK4jgJeL56C8rIPtwbqqyknva_KzHLgs3d_clxeH3Pg77HN6CfGLQkCIIVTFL1q7ejm7v7KbY7qOjkID3vhupxDCjJjOMwLlYv7Ic-g3sLBKxxcErq7IwM-ugDtolBi9MoDUk4xnZjvIrP22sM7pywusADrIkvi5MiTdMCv1VkXmTt9XWcMSc7cAP0ideLM0JyiMbQe5DDCo7-tPsJ8M9l9GxFoAc1QE6mLngVJD4Jejs7OYU3xtAnX5qj7dQH9zVs7o2fffN5kHfQBuDpzL5nQDg-EbwN79tdPYJ_V1Ep_wDmtPlQ1fLFVcythdayr2QjN5BjbsQRzMzre0zZdLdTxvK85WE0admoNg93pqWybe2_2ji5IEalLCj7viuVhzkkRhe4T5JtuNVVRRWf78wXJXvbjAzn7vOZ9Dxgt2OPj2HYfSioFcyfX8JjaimcdPYPds5Q4eypeTYdfbZ4Q7vvMrpPtTnTEd4OQSSVtCo4RSQdqCLZ6YL9URcviJHPb8j0nTfk20bd0RLk04TLt3U74yWasmF7kmCeUVDk-H85IzzNy5oatwxelZ6EU9bSMOD8VdZaqehPR9yJykllng30HSb3hPd13cyu8s8LO8MZ3651yJ-Z_0hJkIb_LhMfdWFfp-GjLj4J-9rt7Oeq-yx7TYVXvP-q573M9bnx1_HnGRr4i2b8sahkr2G9Gr2fnPQvHPGv8f5f5O9crrLlZGBs_rUaJ0WfcSdLcULcVopNv89_feqexUS0cAawE8MWsJDESdz-2HCWaN18Q7ST10opxFERkJznQR9IigKRm8cs2SXxQgrVPC72quka2NLqZdJd2P2QYcJ0PiHEAd7t_JidddS43Wgt7w4B8ShENrdZGVvhbvIzKeJn7OONfxDqXqvLg3N1e1cnN4jc7DUvtHRLbfaI3PzTT5j_-PEbPebf0OoKkez93Ul-wdcRz6OcXsA6TKMsifPVilwc1mEGMU_TvEgoC_KY04jzOAIWFFnES0gvxJoEZBWQIA6SkERkmVASlGxVRmkUkpysUBxARYVc-rz24S-EtQ2sQ7JK4vBC0gKkbX_iI0TBA25bESFodXVh1n7Qomj2FsWBFNbZYRonnIR1a17wwwEUbqxQe4xIOvu1BpG0_xXvojFyPeNFuENTLJmuvP5-63V_FrXR_wDmBW0RWURuesjHNflXAAAA___GvK5F">