Mercurial > projects > ldc
changeset 386:1fd4cacea60e
Merge.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Wed, 23 Jul 2008 20:27:35 +0200 |
parents | c4e7003136ab (current diff) 3f98d46e05a4 (diff) |
children | cbb65e65236b 869d08aaf336 |
files | |
diffstat | 2 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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;
--- 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()) {