mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 06:30:16 +00:00
Move CompileUnit::getOrCreateNameSpace() and CompileUnit::addPubType() from DwarfDebug.cpp to DwarfCompileUnit.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130991 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
af25768415
commit
31c5d05a26
@ -585,6 +585,27 @@ void CompileUnit::addType(DIE *Entity, DIType Ty) {
|
||||
Entity->addValue(dwarf::DW_AT_type, dwarf::DW_FORM_ref4, Entry);
|
||||
}
|
||||
|
||||
/// addPubTypes - Add type for pubtypes section.
|
||||
void CompileUnit::addPubTypes(DISubprogram SP) {
|
||||
DICompositeType SPTy = SP.getType();
|
||||
unsigned SPTag = SPTy.getTag();
|
||||
if (SPTag != dwarf::DW_TAG_subroutine_type)
|
||||
return;
|
||||
|
||||
DIArray Args = SPTy.getTypeArray();
|
||||
for (unsigned i = 0, e = Args.getNumElements(); i != e; ++i) {
|
||||
DIType ATy(Args.getElement(i));
|
||||
if (!ATy.Verify())
|
||||
continue;
|
||||
DICompositeType CATy = getDICompositeType(ATy);
|
||||
if (DIDescriptor(CATy).Verify() && !CATy.getName().empty()
|
||||
&& !CATy.isForwardDecl()) {
|
||||
if (DIEEntry *Entry = getDIEEntry(CATy))
|
||||
addGlobalType(CATy.getName(), Entry->getEntry());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// constructTypeDIE - Construct basic type die from DIBasicType.
|
||||
void CompileUnit::constructTypeDIE(DIE &Buffer, DIBasicType BTy) {
|
||||
// Get core information.
|
||||
@ -809,6 +830,20 @@ CompileUnit::getOrCreateTemplateValueParameterDIE(DITemplateValueParameter TPV)
|
||||
return ParamDIE;
|
||||
}
|
||||
|
||||
/// getOrCreateNameSpace - Create a DIE for DINameSpace.
|
||||
DIE *CompileUnit::getOrCreateNameSpace(DINameSpace NS) {
|
||||
DIE *NDie = getDIE(NS);
|
||||
if (NDie)
|
||||
return NDie;
|
||||
NDie = new DIE(dwarf::DW_TAG_namespace);
|
||||
insertDIE(NS, NDie);
|
||||
if (!NS.getName().empty())
|
||||
addString(NDie, dwarf::DW_AT_name, dwarf::DW_FORM_string, NS.getName());
|
||||
addSourceLine(NDie, NS);
|
||||
addToContextOwner(NDie, NS.getContext());
|
||||
return NDie;
|
||||
}
|
||||
|
||||
/// constructSubrangeDIE - Construct subrange DIE from DISubrange.
|
||||
void CompileUnit::constructSubrangeDIE(DIE &Buffer, DISubrange SR, DIE *IndexTy){
|
||||
DIE *DW_Subrange = new DIE(dwarf::DW_TAG_subrange_type);
|
||||
|
@ -748,26 +748,6 @@ DIE *DwarfDebug::constructVariableDIE(DbgVariable *DV, DbgScope *Scope) {
|
||||
|
||||
}
|
||||
|
||||
void CompileUnit::addPubTypes(DISubprogram SP) {
|
||||
DICompositeType SPTy = SP.getType();
|
||||
unsigned SPTag = SPTy.getTag();
|
||||
if (SPTag != dwarf::DW_TAG_subroutine_type)
|
||||
return;
|
||||
|
||||
DIArray Args = SPTy.getTypeArray();
|
||||
for (unsigned i = 0, e = Args.getNumElements(); i != e; ++i) {
|
||||
DIType ATy(Args.getElement(i));
|
||||
if (!ATy.Verify())
|
||||
continue;
|
||||
DICompositeType CATy = getDICompositeType(ATy);
|
||||
if (DIDescriptor(CATy).Verify() && !CATy.getName().empty()
|
||||
&& !CATy.isForwardDecl()) {
|
||||
if (DIEEntry *Entry = getDIEEntry(CATy))
|
||||
addGlobalType(CATy.getName(), Entry->getEntry());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// constructScopeDIE - Construct a DIE for this scope.
|
||||
DIE *DwarfDebug::constructScopeDIE(DbgScope *Scope) {
|
||||
if (!Scope || !Scope->getScopeNode())
|
||||
@ -860,20 +840,6 @@ unsigned DwarfDebug::GetOrCreateSourceID(StringRef FileName,
|
||||
return SrcId;
|
||||
}
|
||||
|
||||
/// getOrCreateNameSpace - Create a DIE for DINameSpace.
|
||||
DIE *CompileUnit::getOrCreateNameSpace(DINameSpace NS) {
|
||||
DIE *NDie = getDIE(NS);
|
||||
if (NDie)
|
||||
return NDie;
|
||||
NDie = new DIE(dwarf::DW_TAG_namespace);
|
||||
insertDIE(NS, NDie);
|
||||
if (!NS.getName().empty())
|
||||
addString(NDie, dwarf::DW_AT_name, dwarf::DW_FORM_string, NS.getName());
|
||||
addSourceLine(NDie, NS);
|
||||
addToContextOwner(NDie, NS.getContext());
|
||||
return NDie;
|
||||
}
|
||||
|
||||
/// constructCompileUnit - Create new CompileUnit for the given
|
||||
/// metadata node with tag DW_TAG_compile_unit.
|
||||
void DwarfDebug::constructCompileUnit(const MDNode *N) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user