Mercurial > projects > ldc
diff gen/toir.cpp @ 384:3f98d46e05a4
Fixed segfault when using va_arg.
Fixed segfault when accessing function symbols from inline asm.
author | Tomas Lindquist Olsen <tomas.l.olsen@gmail.com> |
---|---|
date | Wed, 23 Jul 2008 20:21:18 +0200 |
parents | d632801b15f0 |
children | 9ec89aad9dbc |
line wrap: on
line diff
--- a/gen/toir.cpp Wed Jul 23 18:53:44 2008 +0200 +++ b/gen/toir.cpp Wed Jul 23 20:21:18 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()) {