Mercurial > projects > ldc
changeset 327:781af50846b2 trunk
[svn r348] Switch on class invariants (except in release mode).
Generate correct member for classInvariant in classinfo struct.
author | ChristianK |
---|---|
date | Thu, 10 Jul 2008 22:00:27 +0200 |
parents | d7e42b5d8ccd |
children | 7086a84ab3d6 |
files | dmd/mars.c gen/classes.cpp |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/dmd/mars.c Thu Jul 10 21:29:15 2008 +0200 +++ b/dmd/mars.c Thu Jul 10 22:00:27 2008 +0200 @@ -260,7 +260,7 @@ global.params.argv0 = argv[0]; global.params.link = 1; global.params.useAssert = 0; - global.params.useInvariants = 0; + global.params.useInvariants = 1; global.params.useIn = 1; global.params.useOut = 1; global.params.useArrayBounds = 0;
--- a/gen/classes.cpp Thu Jul 10 21:29:15 2008 +0200 +++ b/gen/classes.cpp Thu Jul 10 22:00:27 2008 +0200 @@ -1553,8 +1553,14 @@ inits.push_back(c); // invariant - // TODO - c = defc->getOperand(8); + if (cd->inv) { + DtoForceDeclareDsymbol(cd->inv); + c = cd->inv->ir.irFunc->func; +// c = llvm::ConstantExpr::getBitCast(c, defc->getOperand(8)->getType()); + } + else { + c = defc->getOperand(8); + } inits.push_back(c); // uint flags