Mercurial > projects > ldc
comparison dmd/mtype.c @ 108:288fe1029e1f trunk
[svn r112] Fixed 'case 1,2,3:' style case statements.
Fixed a bunch of bugs with return/break/continue in loops.
Fixed support for the DMDFE hidden implicit return value variable. This can be needed for some foreach statements where the loop body is converted to a nested delegate, but also possibly returns from the function.
Added std.math to phobos.
Added AA runtime support code, done ground work for implementing AAs.
Several other bugfixes.
author | lindquist |
---|---|
date | Tue, 20 Nov 2007 05:29:20 +0100 |
parents | 855adfdb8d38 |
children | 5ab8e92611f9 |
comparison
equal
deleted
inserted
replaced
107:3efbcc81ba45 | 108:288fe1029e1f |
---|---|
4307 // *(&e + offset) | 4307 // *(&e + offset) |
4308 accessCheck(e->loc, sc, e, d); | 4308 accessCheck(e->loc, sc, e, d); |
4309 b = new AddrExp(e->loc, e); | 4309 b = new AddrExp(e->loc, e); |
4310 b->type = e->type->pointerTo(); | 4310 b->type = e->type->pointerTo(); |
4311 b = new AddExp(e->loc, b, new IntegerExp(e->loc, v->offset, Type::tint32)); | 4311 b = new AddExp(e->loc, b, new IntegerExp(e->loc, v->offset, Type::tint32)); |
4312 #if IN_LLVM | |
4313 // LLVMDC modification | |
4314 // this is *essential* | |
4315 ((AddExp*)b)->llvmFieldIndex = true; | |
4316 #endif | |
4312 b->type = v->type->pointerTo(); | 4317 b->type = v->type->pointerTo(); |
4313 e = new PtrExp(e->loc, b); | 4318 e = new PtrExp(e->loc, b); |
4314 e->type = v->type; | 4319 e->type = v->type; |
4315 return e; | 4320 return e; |
4316 } | 4321 } |