# HG changeset patch # User ChristianK # Date 1215976600 -7200 # Node ID 3c5e19bfcbf26785356d880bfd94f8337e5271c3 # Parent 6057fdf797d80b9d8469e9038d7cdafe4bacb03b [svn r369] Fix nested classes when nestedVar is not generated. diff -r 6057fdf797d8 -r 3c5e19bfcbf2 gen/classes.cpp --- a/gen/classes.cpp Sun Jul 13 20:49:10 2008 +0200 +++ b/gen/classes.cpp Sun Jul 13 21:16:40 2008 +0200 @@ -837,9 +837,14 @@ { Logger::println("Resolving nested context"); LOG_SCOPE; + // 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 if (!nest) 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));