From ee29f29659f7982bf23ba499a0dbabf0452135a0 Mon Sep 17 00:00:00 2001 From: Tomas Lindquist Olsen Date: Thu, 4 Sep 2008 17:17:40 +0200 Subject: [PATCH] Fixed pointer comparisons with differing types. --- gen/toir.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen/toir.cpp b/gen/toir.cpp index de0d74bb..72bf787c 100644 --- a/gen/toir.cpp +++ b/gen/toir.cpp @@ -1171,7 +1171,6 @@ DValue* CmpExp::toElem(IRState* p) Type* t = e1->type->toBasetype(); Type* e2t = e2->type->toBasetype(); - assert(DtoType(t) == DtoType(e2t)); LLValue* eval = 0; @@ -1221,6 +1220,8 @@ DValue* CmpExp::toElem(IRState* p) LLValue* b = r->getRVal(); Logger::cout() << "type 1: " << *a << '\n'; Logger::cout() << "type 2: " << *b << '\n'; + if (a->getType() != b->getType()) + b = DtoBitCast(b, a->getType()); eval = p->ir->CreateICmp(cmpop, a, b, "tmp"); } }