Mercurial > projects > ldc
comparison gen/toir.cpp @ 512:0d286cd9fd08
Add interface comparison to EqualExp: just do pointer comparison.
Fixes run/b/bug_e2ir_1786_B,C.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Fri, 15 Aug 2008 22:41:47 +0200 |
parents | d7b2e8777e2b |
children | 73e41129b7f3 |
comparison
equal
deleted
inserted
replaced
511:a0b0676e787d | 512:0d286cd9fd08 |
---|---|
1286 Type* e2t = e2->type->toBasetype(); | 1286 Type* e2t = e2->type->toBasetype(); |
1287 //assert(t == e2t); | 1287 //assert(t == e2t); |
1288 | 1288 |
1289 LLValue* eval = 0; | 1289 LLValue* eval = 0; |
1290 | 1290 |
1291 if (t->isintegral() || t->ty == Tpointer) | 1291 // the Tclass catches interface comparisons, regular |
1292 { | 1292 // class equality should be rewritten as a.opEquals(b) by this time |
1293 Logger::println("integral or pointer"); | 1293 if (t->isintegral() || t->ty == Tpointer || t->ty == Tclass) |
1294 { | |
1295 Logger::println("integral or pointer or interface"); | |
1294 llvm::ICmpInst::Predicate cmpop; | 1296 llvm::ICmpInst::Predicate cmpop; |
1295 switch(op) | 1297 switch(op) |
1296 { | 1298 { |
1297 case TOKequal: | 1299 case TOKequal: |
1298 cmpop = llvm::ICmpInst::ICMP_EQ; | 1300 cmpop = llvm::ICmpInst::ICMP_EQ; |