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);
This commit is contained in:
Alexey Prokhin
2011-12-06 13:06:08 +04:00
parent 7da47c4ee8
commit f8bf70ff7a

View File

@@ -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)));
}