Changed some hardcoded offset/alignment for classes in DMD, broke offsets for 64bits.

Changed ClassInfo generation to no longer access the default initializer of ClassInfo, fixes problems with index mismatch.
This commit is contained in:
Tomas Lindquist Olsen
2008-11-30 20:22:09 +01:00
parent 81eded2ece
commit 577237e073
5 changed files with 136 additions and 149 deletions

View File

@@ -2035,7 +2035,7 @@ DValue* ComExp::toElem(IRState* p)
DValue* u = e1->toElem(p);
LLValue* value = u->getRVal();
LLValue* minusone = llvm::ConstantInt::get(value->getType(), -1, true);
LLValue* minusone = llvm::ConstantInt::get(value->getType(), (uint64_t)-1, true);
value = llvm::BinaryOperator::Create(llvm::Instruction::Xor, value, minusone, "tmp", p->scopebb());
return new DImValue(type, value);