mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-01 23:50:43 +03:00
Fix debuginfos for nested ref/out parameters (use llvm.dbg.declare)
llvm.dbg.value() apparently doesn't like GEP + deref, so use llvm.dbg.declare() & GEP.
This commit is contained in:
parent
93decabe6c
commit
8cc5ff6e79
6 changed files with 55 additions and 35 deletions
|
@ -770,8 +770,12 @@ void defineParameters(IrFuncTy &irFty, VarDeclarations ¶meters) {
|
|||
|
||||
// The debuginfos for captured params are handled later by
|
||||
// DtoCreateNestedContext().
|
||||
if (global.params.symdebug && vd->nestedrefs.dim == 0)
|
||||
gIR->DBuilder.EmitLocalVariable(irparam->value, vd, paramType);
|
||||
if (global.params.symdebug && vd->nestedrefs.dim == 0) {
|
||||
// Reference (ref/out) parameters have no storage themselves as they are
|
||||
// constant pointers, so pass the reference rvalue to EmitLocalVariable().
|
||||
gIR->DBuilder.EmitLocalVariable(irparam->value, vd, paramType, false,
|
||||
false, /*isRefRVal=*/true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue