# HG changeset patch # User Christian Kamm # Date 1218832907 -7200 # Node ID 0d286cd9fd0862a137d4ee21151b2faee14eb8a2 # Parent a0b0676e787d1f416e22cac3e5685fcf343231d0 Add interface comparison to EqualExp: just do pointer comparison. Fixes run/b/bug_e2ir_1786_B,C. diff -r a0b0676e787d -r 0d286cd9fd08 gen/toir.cpp --- a/gen/toir.cpp Fri Aug 15 05:08:33 2008 +0200 +++ b/gen/toir.cpp Fri Aug 15 22:41:47 2008 +0200 @@ -1288,9 +1288,11 @@ LLValue* eval = 0; - if (t->isintegral() || t->ty == Tpointer) + // the Tclass catches interface comparisons, regular + // class equality should be rewritten as a.opEquals(b) by this time + if (t->isintegral() || t->ty == Tpointer || t->ty == Tclass) { - Logger::println("integral or pointer"); + Logger::println("integral or pointer or interface"); llvm::ICmpInst::Predicate cmpop; switch(op) {