aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_abi.cpp
diff options
context:
space:
mode:
authorLaytan Laats <laytanlaats@hotmail.com>2024-04-24 18:38:46 +0200
committerLaytan Laats <laytanlaats@hotmail.com>2024-04-24 19:50:39 +0200
commite8c5bb46296f8eb65fe8f343407381e88ba9bcca (patch)
treeaf492bef0d3fec2263f3eb77d737924a1ad8ea2d /src/llvm_abi.cpp
parent5b6c96cd18af9818c37ecdef5130d79ca7149b87 (diff)
compiler: support returning 0 sized types in arm64 abi
Diffstat (limited to 'src/llvm_abi.cpp')
-rw-r--r--src/llvm_abi.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/llvm_abi.cpp b/src/llvm_abi.cpp
index 88bb58c55..85a16d321 100644
--- a/src/llvm_abi.cpp
+++ b/src/llvm_abi.cpp
@@ -1131,8 +1131,9 @@ namespace lbAbiArm64 {
if (size <= 16) {
LLVMTypeRef cast_type = nullptr;
- GB_ASSERT(size > 0);
- if (size <= 8) {
+ if (size == 0) {
+ cast_type = LLVMStructTypeInContext(c, nullptr, 0, false);
+ } else if (size <= 8) {
cast_type = LLVMIntTypeInContext(c, cast(unsigned)(size*8));
} else {
unsigned count = cast(unsigned)((size+7)/8);