<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/124519>124519</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][AArch64] Assertion `Size != 0 && "Cannot allocate zero size fixed stack objects!"' failed.
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
k-arrows
</td>
</tr>
</table>
<pre>
I can reproduce this crash on aarch64, but not on x86_64.
Reproducer:
```f90
function f(x) bind(c)
type, bind(c) :: t
end type
type(t) :: x
value :: x
end
end
```
Assertion failure:
```txt
flang: /opt/llvm-project/llvm/lib/CodeGen/MachineFrameInfo.cpp:85: int llvm::MachineFrameInfo::CreateFixedObject(uint64_t, int64_t, bool, bool): Assertion `Size != 0 && "Cannot allocate zero size fixed stack objects!"' failed.
```
Stack dump:
```console
#0 0x0000ffffb141f2c4 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/llvm/lib/libLLVMSupport.so.20.0git+0x18f2c4)
#1 0x0000ffffb141d0fc llvm::sys::RunSignalHandlers() (/opt/llvm/lib/libLLVMSupport.so.20.0git+0x18d0fc)
#2 0x0000ffffb141f9e4 SignalHandler(int) Signals.cpp:0:0
#3 0x0000ffffb2fbd8fc (linux-vdso.so.1+0x8fc)
#4 0x0000ffffb0e5f200 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x7f200)
#5 0x0000ffffb0e1a67c gsignal (/usr/lib/aarch64-linux-gnu/libc.so.6+0x3a67c)
#6 0x0000ffffb0e07130 abort (/usr/lib/aarch64-linux-gnu/libc.so.6+0x27130)
#7 0x0000ffffb0e13fd0 (/usr/lib/aarch64-linux-gnu/libc.so.6+0x33fd0)
#8 0x0000ffffb0e14040 __assert_perror_fail (/usr/lib/aarch64-linux-gnu/libc.so.6+0x34040)
#9 0x0000ffffafcd1b38 llvm::MachineFrameInfo::CreateFixedObject(unsigned long, long, bool, bool) (/opt/llvm/lib/libLLVMCodeGen.so.20.0git+0x361b38)
#10 0x0000ffffb2a5e4d4 (anonymous namespace)::IncomingArgHandler::getStackAddress(unsigned long, long, llvm::MachinePointerInfo&, llvm::ISD::ArgFlagsTy) AArch64CallLowering.cpp:0:0
#11 0x0000ffffb0aebc70 llvm::CallLowering::handleAssignments(llvm::CallLowering::ValueHandler&, llvm::SmallVectorImpl<llvm::CallLowering::ArgInfo>&, llvm::CCState&, llvm::SmallVectorImpl<llvm::CCValAssign>&, llvm::MachineIRBuilder&, llvm::ArrayRef<llvm::Register>) const (/opt/llvm/lib/libLLVMGlobalISel.so.20.0git+0x4bc70)
#12 0x0000ffffb2a59dfc llvm::AArch64CallLowering::lowerFormalArguments(llvm::MachineIRBuilder&, llvm::Function const&, llvm::ArrayRef<llvm::ArrayRef<llvm::Register>>, llvm::FunctionLoweringInfo&) const (/opt/llvm/lib/libLLVMAArch64CodeGen.so.20.0git+0x99dfc)
#13 0x0000ffffb0b5abb0 llvm::IRTranslator::runOnMachineFunction(llvm::MachineFunction&) (/opt/llvm/lib/libLLVMGlobalISel.so.20.0git+0xbabb0)
#14 0x0000ffffafce0378 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/opt/llvm/lib/libLLVMCodeGen.so.20.0git+0x370378)
#15 0x0000ffffae84eab0 llvm::FPPassManager::runOnFunction(llvm::Function&) (/opt/llvm/lib/libLLVMCore.so.20.0git+0x24eab0)
#16 0x0000ffffae856158 llvm::FPPassManager::runOnModule(llvm::Module&) (/opt/llvm/lib/libLLVMCore.so.20.0git+0x256158)
#17 0x0000ffffae84f3b4 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/llvm/lib/libLLVMCore.so.20.0git+0x24f3b4)
#18 0x0000ffffb21fcfe0 generateMachineCodeOrAssemblyImpl(clang::DiagnosticsEngine&, llvm::TargetMachine&, Fortran::frontend::BackendActionTy, llvm::Module&, Fortran::frontend::CodeGenOptions const&, llvm::raw_pwrite_stream&) FrontendActions.cpp:0:0
#19 0x0000ffffb21fca58 Fortran::frontend::CodeGenAction::executeAction() (/opt/llvm/lib/libflangFrontend.so.20.0git+0x3ca58)
#20 0x0000ffffb21f2494 Fortran::frontend::FrontendAction::execute() (/opt/llvm/lib/libflangFrontend.so.20.0git+0x32494)
#21 0x0000ffffb21dc844 Fortran::frontend::CompilerInstance::executeAction(Fortran::frontend::FrontendAction&) (/opt/llvm/lib/libflangFrontend.so.20.0git+0x1c844)
#22 0x0000ffffb27d335c Fortran::frontend::executeCompilerInvocation(Fortran::frontend::CompilerInstance*) (/opt/llvm/lib/libflangFrontendTool.so.20.0git+0x335c)
#23 0x0000aaaad6cf46e0 fc1_main(llvm::ArrayRef<char const*>, char const*) (/opt/llvm/bin/flang+0x46e0)
#24 0x0000aaaad6cf2e98 main (/opt/llvm/bin/flang+0x2e98)
#25 0x0000ffffb0e073fc (/usr/lib/aarch64-linux-gnu/libc.so.6+0x273fc)
#26 0x0000ffffb0e074cc __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x274cc)
#27 0x0000aaaad6cf29f0 _start (/opt/llvm/bin/flang+0x29f0)
flang-20: error: unable to execute command: Aborted (core dumped)
flang-20: error: flang frontend command failed due to signal (use -v to see invocation)
flang version 20.0.0git (https://github.com/llvm/llvm-project 7107f55d82f8d1077d5478e8f58c94851385c06f)
Target: aarch64-unknown-linux-gnu
Thread model: posix
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy8WFtz26oW_jX4hYkHofuDH1Sn3icz7bSTZPrqQYBknSLwAEqd_evPgOToYjdJs_ecmTaWMXzrW9-6ACLGNLXkfAPiTyC-XZHOHpTe_LwhWqtfZlUq9ry5g5RIqPlRK9ZRDu2hMZBqYg5QSUiIpockAngLy85CqawbPWXJPonWABX353UahAVABUhQ_6_KEUBF1UlqGyVhBXB2AjiHZSMZwBkFOAeosM9H7rHHUeiAwgJagAouGfRTzjMzO5lxAqh4IqLj0wEu2cvfFzLuGRWFMVz3bEgjOs0XlO3J2awEkbVDA3injhbgnRBP7c1Rq_9yev7qPpoS4N1WMf4XlwDvvhJ6aCTfadLyO1mpNT0eQVhkscNqpIV-nSe6nNqPbjUnlu-aE2ffyt5W1jXSJtHeOo0mj6VSYvzMnYXROZCgh-ZvDgEOQHgLEQQ4ATiBAOMtkS6CRAhFieXwb64VNG5y5cxCYwn9CZW3btx6jAFOvVycrS8VffDzWdceF1JSJY0SLm4Q4BBBdEIIoaqqqjKIggrTaCKHeTb9w3fdSOsxHzWhLtzjJE1-7ZWxmpPW--P18MmAs1mkXkIjmvLLlx9fH7rjUWm7NmqN0RrVjQX4EzoFmWPRZ6HjGCw4MlTRaxzvO_nQ1JKI_xDJBNfG2_8HNJyhkQZeSpXzCM4MApwNnvfDZkg05P_3KOEUBVclyyrqGIpGdqebJ2aU4xF4BtnUfDRdiHhcYYQG1zqjX3wausJNj1fLrv-FOtTEo6Zu5Ygbz3EDkqQU1sY78CH80CGM-MkcH6VBiCAplbYfQsdu_YieLtiHFfuYKqFbOeJmC9wIRQju98SX8v7ItVZ674rvY8Yc3GgsnxgjFWVBGWYf60nS7yoMCiVrV4jnz0VXerMkht65LIkwcdR64q4wZ90Dk5hHLHLYRCr53KrOQElabo6-Y-Q97ztJVdvIutD1uWz8eM37_lIwprkxr3lzIc131UjLtRen70DjlLuH2_6h0PVOkNo8PjsFisIHaUuE-KJ-cd3IelGtzsFZ60GElzRFE-zp6n7k4F0q_O7eculadfba_B9uk3xpHwvqDy0R4genVum79ihAuH0NqtB1nx2fL4C22wdLLP8zA9sfRPSOXIMclL-7_9Q1gl0hX2hNnu95NQO953VjrAv5ZxcEtxfZN5PxL6FKIu4euFjmY-TiMaYjXqRjzmYbxZWQ9z8I922ndEtEoevuMm5vOrs7H6a8R-_T4k2BnEbXjJzJv6T7e4U8C3C9uHMn1yjmbKNCZUzKcpr6d_ePmkgjiFVDAetOfpPnXjVQvabi-Fvynlb0--iXjtJIOJp3UY7C9FoXHax_J8ZMeF8l_IdMf9c0U8dk5DndcAnPIk5mwu6-O2pfiSQ11_86Q82X9LAnMNJL5vTiJIizd9D7qlgn5ufC89DHqXnjI7V0oVwVltPDquA1oc_DeXUk2Xe2gei_TNBTGAnOTg04qGjFEay55JpYPiSgy5Jv2t0J2lI8e3I4o8PNBoTFbUNqqYxtqPks60Zedu1HomtuB7jh153SVhPZT6i0ktbds_y3T4T-5JIVPlHc5jdr46MEr4IMuf3t6EDMb9qcuwgcf-nG8v3kOpDD3QDVU1ieip1w-VI4EmfvoNMD9kP8xGlneXEukrdi6i-TZ2YXNesIvMQVowU9HOXRa_TmDs_4_WNmzvbILJgzYzSLXmW2Ve2xEe6oZCyRlF_X7v2uvV07r3oTOL6jN_MNPGVhGNPXvBl4j049ucvzmz5ciICLP_LiUamLzchRHR05b56EEMISWkUJR7Ciwb4lzbwHTU4B9ED0ubKKYfefj10nWTrIXf9yxJ-KEj72cxwtqGCeZ9DReA-UmzxCxcurXNjfXT9wiQsnRw18cUWMKIX7vVuzN5Zou5_w_VNLEZ1YSpdi5BWCvY13yZFXg7J-7Aa7Hgb9ZdA9dJKUgkOr4JCYkKq2JT7tYOGuvJw5M1Rp7l_NcPYKmh-E58w9Qw1vfCDrvKHxnt4ZDm-e_BjnsJmUwosF-MS1cadUl7g-dd3Cg7VHfxTCO4B3dWMPXbmmqp1UweQtG0wDlFZxzDJcZSxAacriKM14VsUZzaMsDsIspiiperv9XuXcOceqkz-l-iUnMUPF40FzwmCrGHdbNTwq05wu32mt2CZkeZiTFd8EaZjmSZRH4eqwQXlYhnlEEEtJhWkSsJTENMzjmIZlidCq2WCEYxTgFGUI43BN85SUUUiDMmJxRlIQId6SRqydr2ul61VjTMc3AY7iIF8JUnJh_MtajId8wCC-XemNF6fsagMiJBpjzQhhGyv8G96dXxHfgvjTcAYH8e3_473gqtNi82cBBnjnXTcA7wbvnzb4fwEAAP__aqzu5Q">