Mercurial > projects > ldc
diff gen/structs.cpp @ 486:a34078905d01
Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Sun, 10 Aug 2008 08:37:38 +0200 |
parents | 56265fa07c7d |
children | fbb1a366cfbc |
line wrap: on
line diff
--- a/gen/structs.cpp Sat Aug 09 09:03:52 2008 +0200 +++ b/gen/structs.cpp Sun Aug 10 08:37:38 2008 +0200 @@ -67,7 +67,7 @@ for (unsigned i=0; i<sd->fields.dim; ++i) { VarDeclaration* vd = (VarDeclaration*)sd->fields.data[i]; - Type* vdtype = DtoDType(vd->type); + Type* vdtype = vd->type->toBasetype(); //Logger::println("found %u type %s", vd->offset, vdtype->toChars()); assert(vd->ir.irField->index >= 0); if (os == vd->offset && vdtype == t) { @@ -125,7 +125,7 @@ if (sd->prot() == PROTprivate && sd->getModule() != gIR->dmodule) Logger::println("using a private struct from outside its module"); - TypeStruct* ts = (TypeStruct*)DtoDType(sd->type); + TypeStruct* ts = (TypeStruct*)sd->type->toBasetype(); bool ispacked = (ts->alignsize() == 1); @@ -279,7 +279,7 @@ Logger::println("DtoDeclareStruct(%s): %s", sd->toChars(), sd->loc.toChars()); LOG_SCOPE; - TypeStruct* ts = (TypeStruct*)DtoDType(sd->type); + TypeStruct* ts = (TypeStruct*)sd->type->toBasetype(); std::string initname("_D"); initname.append(sd->mangle());