Fixed debug info and lazy arguments.

This commit is contained in:
Tomas Lindquist Olsen 2008-08-02 21:51:49 +02:00
parent 41d6279a64
commit 00072e5fd0

View file

@ -595,8 +595,10 @@ void DtoDefineFunc(FuncDeclaration* fd)
VarDeclaration* vd = argsym->isVarDeclaration();
assert(vd);
bool refoutlazy = vd->storage_class & (STCref | STCout | STClazy);
// FIXME: llvm seems to want an alloca/byval for debug info
if (!vd->needsStorage || vd->nestedref || vd->isRef() || vd->isOut())
if (!vd->needsStorage || vd->nestedref || refoutlazy)
{
Logger::println("skipping arg storage for (%s) %s ", vd->loc.toChars(), vd->toChars());
continue;