From: Adrian Prantl Date: Fri, 15 Nov 2013 21:05:09 +0000 (+0000) Subject: Reimplement r194843 in a slightly less broken way. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=0cbdb81de76274c3f1731d92dc09864d2277d690;p=oota-llvm.git Reimplement r194843 in a slightly less broken way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194848 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index e399508bb94..1120279fe74 100644 --- a/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -871,9 +871,7 @@ DIE *CompileUnit::getOrCreateContextDIE(DIScope Context) { return getOrCreateNameSpace(DINameSpace(Context)); if (Context.isSubprogram()) return getOrCreateSubprogramDIE(DISubprogram(Context)); - if (DIE *ContextDIE = getDIE(Context)) - return ContextDIE; - return getCUDie(); + return getDIE(Context); } /// getOrCreateTypeDIE - Find existing DIE or create new DIE for the @@ -888,6 +886,10 @@ 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())); + // TODO: Investigate if this beavior is intentional and possibly + // replace it with an assert. + if (!ContextDIE) + ContextDIE = getCUDie(); DIE *TyDIE = getDIE(Ty); if (TyDIE)