comparison dmd/optimize.c @ 1103:b30fe7e1dbb9

- Updated to DMD frontend 1.041. - Removed dmd/inifile.c , it's not under a free license, replaced with libconfig based config file.
author Tomas Lindquist Olsen <tomas.l.olsen gmail.com>
date Thu, 12 Mar 2009 20:37:27 +0100
parents c519caae3181
children ab186e535e72
comparison
equal deleted inserted replaced
1102:ae950bd712d3 1103:b30fe7e1dbb9
232 && !ve->var->isImportedSymbol()) 232 && !ve->var->isImportedSymbol())
233 { 233 {
234 TypeSArray *ts = (TypeSArray *)ve->type; 234 TypeSArray *ts = (TypeSArray *)ve->type;
235 integer_t dim = ts->dim->toInteger(); 235 integer_t dim = ts->dim->toInteger();
236 if (index < 0 || index >= dim) 236 if (index < 0 || index >= dim)
237 error("array index %lld is out of bounds [0..%lld]", index, dim); 237 error("array index %jd is out of bounds [0..%jd]", index, dim);
238 e = new SymOffExp(loc, ve->var, index * ts->next->size()); 238 e = new SymOffExp(loc, ve->var, index * ts->next->size());
239 e->type = type; 239 e->type = type;
240 return e; 240 return e;
241 } 241 }
242 } 242 }
419 if (e2->isConst() == 1) 419 if (e2->isConst() == 1)
420 { 420 {
421 integer_t i2 = e2->toInteger(); 421 integer_t i2 = e2->toInteger();
422 d_uns64 sz = e1->type->size() * 8; 422 d_uns64 sz = e1->type->size() * 8;
423 if (i2 < 0 || i2 > sz) 423 if (i2 < 0 || i2 > sz)
424 { 424 { error("shift assign by %jd is outside the range 0..%zu", i2, sz);
425 error("shift assign by %lld is outside the range 0..%"PRIuSIZE, i2, sz);
426 e2 = new IntegerExp(0); 425 e2 = new IntegerExp(0);
427 } 426 }
428 } 427 }
429 } 428 }
430 return this; 429 return this;
515 if (e->e2->isConst() == 1) 514 if (e->e2->isConst() == 1)
516 { 515 {
517 integer_t i2 = e->e2->toInteger(); 516 integer_t i2 = e->e2->toInteger();
518 d_uns64 sz = e->e1->type->size() * 8; 517 d_uns64 sz = e->e1->type->size() * 8;
519 if (i2 < 0 || i2 > sz) 518 if (i2 < 0 || i2 > sz)
520 { 519 { e->error("shift by %jd is outside the range 0..%zu", i2, sz);
521 error("shift by %lld is outside the range 0..%"PRIuSIZE, i2, sz);
522 e->e2 = new IntegerExp(0); 520 e->e2 = new IntegerExp(0);
523 } 521 }
524 if (e->e1->isConst() == 1) 522 if (e->e1->isConst() == 1)
525 ex = (*shift)(e->type, e->e1, e->e2); 523 ex = (*shift)(e->type, e->e1, e->e2);
526 } 524 }