http://d.puremagic.com/issues/show_bug.cgi?id=259
--- Comment #16 from Ellery Newcomer <[email protected]> 2009-09-08 10:43:00 PDT --- Cool. That sounds like a much better solution than the patch I posted. Concerning my patch, I just realized that comparison with unsigned and zero generally doesn't make sense either, except maybe {unsigned} > 0 so now I have if ( e1->type->isintegral() && e2->type->isintegral()){ if(e1->type->isunsigned() ^ e2->type->isunsigned()){ if(!e1->type->isunsigned() && dynamic_cast<IntegerExp*>(e1)){ sinteger_t v1 = ((sinteger_t) e1->toInteger()); if(v1 > 0) goto JustKidding; // 0 < uns or 0 !>= uns okay else if(v1 == 0 && (op == TOKlt || op == TOKul)) goto JustKidding; }else if(dynamic_cast<IntegerExp*>(e2)){ sinteger_t v2 = ((sinteger_t) e2->toInteger()); if(v2 > 0) goto JustKidding; // uns > 0 or uns !<= 0 okay else if(v2 == 0 && (op == TOKgt || op == TOKug)) goto JustKidding; } error("comparing signed and unsigned integers"); } JustKidding:; } in case anyone plans to commit it -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
