mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-01 02:33:44 +00:00
DwarfCompileUnit::getOrCreateContext: Return the compile unit DIE rather than null.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194728 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f4837be7c1
commit
8c0fecc39f
@ -863,6 +863,8 @@ void CompileUnit::addTemplateParams(DIE &Buffer, DIArray TParams) {
|
||||
|
||||
/// getOrCreateContextDIE - Get context owner's DIE.
|
||||
DIE *CompileUnit::getOrCreateContextDIE(DIScope Context) {
|
||||
if (!Context || Context.isFile())
|
||||
return getCUDie();
|
||||
if (Context.isType())
|
||||
return getOrCreateTypeDIE(DIType(Context));
|
||||
if (Context.isNameSpace())
|
||||
@ -882,8 +884,6 @@ DIE *CompileUnit::getOrCreateTypeDIE(const MDNode *TyNode) {
|
||||
// Construct the context before querying for the existence of the DIE in case
|
||||
// such construction creates the DIE.
|
||||
DIE *ContextDIE = getOrCreateContextDIE(resolve(Ty.getContext()));
|
||||
if (!ContextDIE)
|
||||
ContextDIE = CUDie.get();
|
||||
|
||||
DIE *TyDIE = getDIE(Ty);
|
||||
if (TyDIE)
|
||||
@ -1355,10 +1355,6 @@ DIE *CompileUnit::getOrCreateNameSpace(DINameSpace NS) {
|
||||
// Construct the context before querying for the existence of the DIE in case
|
||||
// such construction creates the DIE.
|
||||
DIE *ContextDIE = getOrCreateContextDIE(NS.getContext());
|
||||
if (!ContextDIE)
|
||||
// If the context is null, DIE should belong to the CU we call construct
|
||||
// function on.
|
||||
ContextDIE = CUDie.get();
|
||||
|
||||
DIE *NDie = getDIE(NS);
|
||||
if (NDie)
|
||||
@ -1381,8 +1377,6 @@ DIE *CompileUnit::getOrCreateSubprogramDIE(DISubprogram SP) {
|
||||
// such construction creates the DIE (as is the case for member function
|
||||
// declarations).
|
||||
DIE *ContextDIE = getOrCreateContextDIE(resolve(SP.getContext()));
|
||||
if (!ContextDIE)
|
||||
ContextDIE = CUDie.get();
|
||||
|
||||
DIE *SPDie = getDIE(SP);
|
||||
if (SPDie)
|
||||
@ -1541,8 +1535,6 @@ void CompileUnit::createGlobalVariableDIE(const MDNode *N) {
|
||||
// Construct the context before querying for the existence of the DIE in
|
||||
// case such construction creates the DIE.
|
||||
DIE *ContextDIE = getOrCreateContextDIE(GVContext);
|
||||
if (!ContextDIE)
|
||||
ContextDIE = CUDie.get();
|
||||
|
||||
// Add to map.
|
||||
VariableDIE = createAndAddDIE(GV.getTag(), *ContextDIE, N);
|
||||
@ -1913,7 +1905,8 @@ DIE *CompileUnit::getOrCreateStaticMemberDIE(const DIDerivedType DT) {
|
||||
// Construct the context before querying for the existence of the DIE in case
|
||||
// such construction creates the DIE.
|
||||
DIE *ContextDIE = getOrCreateContextDIE(resolve(DT.getContext()));
|
||||
assert(ContextDIE && "Static member should belong to a non-CU context.");
|
||||
assert(dwarf::isType(ContextDIE->getTag()) &&
|
||||
"Static member should belong to a type.");
|
||||
|
||||
DIE *StaticMemberDIE = getDIE(DT);
|
||||
if (StaticMemberDIE)
|
||||
|
Loading…
x
Reference in New Issue
Block a user