mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-24 08:24:33 +00:00
DebugInfo: Remove DITypedArray<>, replace with typedefs
Replace all uses of `DITypedArray<>` with `MDTupleTypedArrayWrapper<>` and `MDTypeRefArray`. The APIs are completely different, but the provided functionality is the same: treat an `MDTuple` as if it's an array of a particular element type. To simplify this patch a bit, I've temporarily typedef'ed `DebugNodeArray` to `DIArray` and `MDTypeRefArray` to `DITypeArray`. I've also temporarily conditionalized the accessors to check for null -- eventually these should be changed to asserts and the callers should check for null themselves. There's a tiny accompanying patch to clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234290 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -580,8 +580,7 @@ void DwarfCompileUnit::constructSubprogramScopeDIE(LexicalScope *Scope) {
|
||||
// If we have a single element of null, it is a function that returns void.
|
||||
// If we have more than one elements and the last one is null, it is a
|
||||
// variadic function.
|
||||
if (FnArgs.getNumElements() > 1 &&
|
||||
!FnArgs.getElement(FnArgs.getNumElements() - 1) &&
|
||||
if (FnArgs.size() > 1 && !FnArgs[FnArgs.size() - 1] &&
|
||||
!includeMinimalInlineScopes())
|
||||
ScopeDIE.addChild(make_unique<DIE>(dwarf::DW_TAG_unspecified_parameters));
|
||||
}
|
||||
@ -682,16 +681,15 @@ void DwarfCompileUnit::collectDeadVariables(DISubprogram SP) {
|
||||
assert(SP && "CU's subprogram list contains a non-subprogram");
|
||||
assert(SP.isDefinition() &&
|
||||
"CU's subprogram list contains a subprogram declaration");
|
||||
DIArray Variables = SP.getVariables();
|
||||
if (Variables.getNumElements() == 0)
|
||||
auto Variables = SP->getVariables();
|
||||
if (Variables.size() == 0)
|
||||
return;
|
||||
|
||||
DIE *SPDIE = DU->getAbstractSPDies().lookup(SP);
|
||||
if (!SPDIE)
|
||||
SPDIE = getDIE(SP);
|
||||
assert(SPDIE);
|
||||
for (unsigned vi = 0, ve = Variables.getNumElements(); vi != ve; ++vi) {
|
||||
DIVariable DV = cast<MDLocalVariable>(Variables.getElement(vi));
|
||||
for (DIVariable DV : Variables) {
|
||||
DbgVariable NewVar(DV, DIExpression(), DD);
|
||||
auto VariableDie = constructVariableDIE(NewVar);
|
||||
applyVariableAttributes(NewVar, *VariableDie);
|
||||
|
Reference in New Issue
Block a user