From f8bf70ff7a0b49f54f5db2247bf41f72f869baba Mon Sep 17 00:00:00 2001 From: Alexey Prokhin Date: Tue, 6 Dec 2011 13:06:08 +0400 Subject: [PATCH] Fixed an assert when compiling derelict. The assert was triggered by a line similar to this: extern(C) void func(float[4] a1, float[4] a2, float[4] a3, float[4] a4, float[4] a5); --- gen/abi-x86-64.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gen/abi-x86-64.cpp b/gen/abi-x86-64.cpp index 7c2e97fe..910cd033 100644 --- a/gen/abi-x86-64.cpp +++ b/gen/abi-x86-64.cpp @@ -476,8 +476,8 @@ bool X86_64TargetABI::passByVal(Type* t) { // http://llvm.org/bugs/show_bug.cgi?id=3741 return true; } else { - assert(t == Type::tfloat80 || t == Type::timaginary80 || t->size() <= 8 - && "What other big types are there?"); // other than static arrays... + assert(t == Type::tfloat80 || t == Type::timaginary80 || t->ty == Tsarray || t->size() <= 8 + && "What other big types are there?"); // In any case, they shouldn't be represented as structs in LLVM: assert(!isaStruct(DtoType(t))); }