# HG changeset patch # User Tomas Lindquist Olsen # Date 1217690650 -7200 # Node ID d3d3519b72e8603fbe9755fd4cc5413dfe1bcde4 # Parent 283d113d4753be6fc2ce8c6feb9d061c183ce95f Fixed inserting an AA entry with 'this' as key. Fixed debug info for aggregate parameters. Only seems to work on byval arguments. diff -r 283d113d4753 -r d3d3519b72e8 gen/aa.cpp --- a/gen/aa.cpp Sat Aug 02 02:54:57 2008 +0200 +++ b/gen/aa.cpp Sat Aug 02 17:24:10 2008 +0200 @@ -22,6 +22,10 @@ if (key->isIm()) { pkey = key->getRVal(); } + else if (key->isThis()) { + pkey = key->getRVal(); + needmem = true; + } else if (DVarValue* var = key->isVar()) { if (var->lval) { pkey = key->getLVal(); diff -r 283d113d4753 -r d3d3519b72e8 gen/functions.cpp --- a/gen/functions.cpp Sat Aug 02 02:54:57 2008 +0200 +++ b/gen/functions.cpp Sat Aug 02 17:24:10 2008 +0200 @@ -612,8 +612,9 @@ else if (DtoIsPassedByRef(vd->type)) { Logger::println("skipping arg storage for aggregate (%s) %s ", vd->loc.toChars(), vd->toChars()); - if (global.params.symdebug) - DtoDwarfLocalVariable(vd->ir.getIrValue(), vd); + LLValue* vdirval = vd->ir.getIrValue(); + if (global.params.symdebug && !(isaArgument(vdirval) && !isaArgument(vdirval)->hasByValAttr())) + DtoDwarfLocalVariable(vdirval, vd); continue; }