1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00

DwarfCompileUnit::getOrCreateContext: Return the compile unit DIE rather than null.

llvm-svn: 194728
This commit is contained in:
David Blaikie 2013-11-14 21:24:34 +00:00
parent 2da163137a
commit f2c4229f67

View File

@ -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)