Added emission of dwarf lexical blocks.

Also, dropped support for DISABLE_DEBUG_INFO definition.
This commit is contained in:
Alexey Prokhin
2011-12-04 14:48:47 +04:00
parent cdeca718fc
commit 91f4e5d015
12 changed files with 221 additions and 194 deletions

View File

@@ -199,11 +199,8 @@ void DtoAssert(Module* M, Loc loc, DValue* msg)
// call
gIR->CreateCallOrInvoke(fn, args);
#ifndef DISABLE_DEBUG_INFO
// end debug info
if (global.params.symdebug)
DtoDwarfFuncEnd(gIR->func()->decl);
#endif
DtoDwarfFuncEnd(gIR->func()->decl);
// after assert is always unreachable
gIR->ir->CreateUnreachable();
@@ -515,12 +512,10 @@ void DtoAssign(Loc& loc, DValue* lhs, DValue* rhs, int op)
gIR->ir->CreateStore(r, l);
}
#ifndef DISABLE_DEBUG_INFO
DVarValue *var = lhs->isVar();
VarDeclaration *varDecl = var ? var->var : 0;
if (global.params.symdebug && varDecl && varDecl->debugVariable)
DtoDwarfValue(lhs->getRVal(), varDecl);
#endif
VarDeclaration *vd = var ? var->var : 0;
if (vd)
DtoDwarfValue(lhs->getRVal(), vd);
}
/****************************************************************************************/
@@ -934,11 +929,8 @@ void DtoConstInitGlobal(VarDeclaration* vd)
gvar->setInitializer(initVal);
#ifndef DISABLE_DEBUG_INFO
// do debug info
if (global.params.symdebug)
DtoDwarfGlobalVariable(gvar, vd);
#endif
DtoDwarfGlobalVariable(gvar, vd);
}
}
@@ -1062,10 +1054,7 @@ DValue* DtoDeclarationExp(Dsymbol* declaration)
//allocainst->setAlignment(vd->type->alignsize()); // TODO
vd->ir.irLocal->value = allocainst;
#ifndef DISABLE_DEBUG_INFO
if (global.params.symdebug)
DtoDwarfLocalVariable(allocainst, vd);
#endif
DtoDwarfLocalVariable(allocainst, vd);
}
else
{
@@ -1193,12 +1182,8 @@ LLValue* DtoRawVarDeclaration(VarDeclaration* var, LLValue* addr)
if (!addr && (!var->ir.irLocal || !var->ir.irLocal->value))
{
addr = DtoAlloca(var->type, var->toChars());
#ifndef DISABLE_DEBUG_INFO
// add debug info
if (global.params.symdebug)
DtoDwarfLocalVariable(addr, var);
#endif
DtoDwarfLocalVariable(addr, var);
}
// referenced by nested function?