unsigned < 0
bearophile
bearophileHUGS at lycos.com
Thu Feb 10 15:48:44 PST 2011
Recently I have shown some bugs (and added few enhancement requests):
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=129069
Among those there is my suggestion to statically disallow unsigned<0 comparisons:
http://d.puremagic.com/issues/show_bug.cgi?id=5539
So that's a little change in the D2 language itself, it's not a warning as the one GCC shows on C code.
Recently Iain Buclaw has shown some patches for DMD:
http://d.puremagic.com/issues/show_bug.cgi?id=5490
Three cases were of unsigned < 0, like:
+++ b/src/optimize.c
@@ -351,7 +351,7 @@ Expression *AddrExp::optimize(int result)
{
TypeSArray *ts = (TypeSArray *)ve->type;
dinteger_t dim = ts->dim->toInteger();
- if (index < 0 || index >= dim)
+ if (index >= dim)
error("array index %jd is out of bounds [0..%jd]", index, dim);
e = new SymOffExp(loc, ve->var, index * ts->nextOf()->size());
e->type = type;
Do you like this little change in the D2 language?
Bye,
bearophile
More information about the Digitalmars-d
mailing list