mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-04 17:11:44 +03:00
Fixed inserting an AA entry with 'this' as key.
Fixed debug info for aggregate parameters. Only seems to work on byval arguments.
This commit is contained in:
parent
18b376ba66
commit
55639e01ea
2 changed files with 7 additions and 2 deletions
|
@ -22,6 +22,10 @@ static LLValue* to_pkey(Loc& loc, DValue* key)
|
||||||
if (key->isIm()) {
|
if (key->isIm()) {
|
||||||
pkey = key->getRVal();
|
pkey = key->getRVal();
|
||||||
}
|
}
|
||||||
|
else if (key->isThis()) {
|
||||||
|
pkey = key->getRVal();
|
||||||
|
needmem = true;
|
||||||
|
}
|
||||||
else if (DVarValue* var = key->isVar()) {
|
else if (DVarValue* var = key->isVar()) {
|
||||||
if (var->lval) {
|
if (var->lval) {
|
||||||
pkey = key->getLVal();
|
pkey = key->getLVal();
|
||||||
|
|
|
@ -612,8 +612,9 @@ void DtoDefineFunc(FuncDeclaration* fd)
|
||||||
else if (DtoIsPassedByRef(vd->type))
|
else if (DtoIsPassedByRef(vd->type))
|
||||||
{
|
{
|
||||||
Logger::println("skipping arg storage for aggregate (%s) %s ", vd->loc.toChars(), vd->toChars());
|
Logger::println("skipping arg storage for aggregate (%s) %s ", vd->loc.toChars(), vd->toChars());
|
||||||
if (global.params.symdebug)
|
LLValue* vdirval = vd->ir.getIrValue();
|
||||||
DtoDwarfLocalVariable(vd->ir.getIrValue(), vd);
|
if (global.params.symdebug && !(isaArgument(vdirval) && !isaArgument(vdirval)->hasByValAttr()))
|
||||||
|
DtoDwarfLocalVariable(vdirval, vd);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue