# HG changeset patch # User ChristianK # Date 1216104248 -7200 # Node ID 7d91d82000aeeca2cdb0364186f5fe2cfbe3dc74 # Parent ca401c18c24ebd1629b3a42e3d2ec46c2d1f8a49 [svn r390] Make the zero value used when no nested context was created of the correct type. Fixes run/class_06. diff -r ca401c18c24e -r 7d91d82000ae gen/classes.cpp --- a/gen/classes.cpp Tue Jul 15 08:20:21 2008 +0200 +++ b/gen/classes.cpp Tue Jul 15 08:44:08 2008 +0200 @@ -827,6 +827,9 @@ { Logger::println("Resolving nested context"); LOG_SCOPE; + + LLValue* gep = DtoGEPi(mem,0,2,"tmp"); + // this value might be zero if it was not necessary to generate it ... LLValue* nest = gIR->func()->nestedVar; // ... then revert to the this ptr if there is one @@ -834,10 +837,9 @@ nest = gIR->func()->thisVar; // ... or just use zero, since it must be unused. if (!nest) - nest = llvm::ConstantPointerNull::get(getVoidPtrType()); - assert(nest); - LLValue* gep = DtoGEPi(mem,0,2,"tmp"); - nest = DtoBitCast(nest, gep->getType()->getContainedType(0)); + nest = llvm::Constant::getNullValue(gep->getType()->getContainedType(0)); + else + nest = DtoBitCast(nest, gep->getType()->getContainedType(0)); DtoStore(nest, gep); }