# HG changeset patch # User Christian Kamm # Date 1216837655 -7200 # Node ID 1fd4cacea60e7ed9bbfd3178834beea3ae8b9c37 # Parent c4e7003136abeb072d4b7a948c40e2a35eeec38f# Parent 3f98d46e05a4b33eb8f91d6f0f07754d1d4cdd7e Merge. diff -r c4e7003136ab -r 1fd4cacea60e gen/d-asm-i386.h --- a/gen/d-asm-i386.h Wed Jul 23 20:19:58 2008 +0200 +++ b/gen/d-asm-i386.h Wed Jul 23 20:27:35 2008 +0200 @@ -2036,7 +2036,9 @@ } } else if (exp->op == TOKvar) { VarDeclaration * v = ((VarExp *) exp)->var->isVarDeclaration(); - v->needsStorage = true; + if (v) { + v->needsStorage = true; + } if (v && v->storage_class & STCfield) { operand->constDisplacement += v->offset; diff -r c4e7003136ab -r 1fd4cacea60e gen/toir.cpp --- a/gen/toir.cpp Wed Jul 23 20:19:58 2008 +0200 +++ b/gen/toir.cpp Wed Jul 23 20:27:35 2008 +0200 @@ -254,10 +254,12 @@ else if (FuncDeclaration* fdecl = var->isFuncDeclaration()) { Logger::println("FuncDeclaration"); - if (fdecl->llvmInternal != LLVMva_arg) {// && fdecl->llvmValue == 0) + LLValue* func = 0; + if (fdecl->llvmInternal != LLVMva_arg) { DtoForceDeclareDsymbol(fdecl); + func = fdecl->ir.irFunc->func; } - return new DFuncValue(fdecl, fdecl->ir.irFunc->func); + return new DFuncValue(fdecl, func); } else if (SymbolDeclaration* sdecl = var->isSymbolDeclaration()) {