<div dir="ltr">Reverted in r216792</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 3:18 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="">On Fri, Aug 29, 2014 at 3:17 PM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Aug 29, 2014 at 6:05 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>


> Author: dblaikie<br>
> Date: Fri Aug 29 17:05:26 2014<br>
> New Revision: 216787<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=216787&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=216787&view=rev</a><br>
> Log:<br>
> Stuff<br>
<br>
What about "things" instead? ;-) I suspect a commit log message was missed here.<br></blockquote><div><br></div></div><div>;) <br><br>Yep, accidentally committed a few things when I realized I hadn't committed the LLVM patch (FreeDeleter) to go with my Clang change that used it.<br>

<br>Reverting in a moment. (luckily, these patches don't actually cause anything to fail, though arguably they should... )</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
~Aaron<br>
<br>
><br>
> Modified:<br>
>     llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br>
><br>
> Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=216787&r1=216786&r2=216787&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=216787&r1=216786&r2=216787&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)<br>
> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Fri Aug 29 17:05:26 2014<br>
> @@ -751,6 +751,11 @@ void DwarfDebug::beginModule() {<br>
>    for (MDNode *N : CU_Nodes->operands()) {<br>
>      DICompileUnit CUNode(N);<br>
>      DwarfCompileUnit &CU = constructDwarfCompileUnit(CUNode);<br>
> +    DIArray SPs = CUNode.getSubprograms();<br>
> +    for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i)<br>
> +      SPMap.insert(std::make_pair(SPs.getElement(i), &CU));<br>
> +    if (CU.getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly)<br>
> +      continue;<br>
>      DIArray ImportedEntities = CUNode.getImportedEntities();<br>
>      for (unsigned i = 0, e = ImportedEntities.getNumElements(); i != e; ++i)<br>
>        ScopesWithImportedEntities.push_back(std::make_pair(<br>
> @@ -761,9 +766,6 @@ void DwarfDebug::beginModule() {<br>
>      DIArray GVs = CUNode.getGlobalVariables();<br>
>      for (unsigned i = 0, e = GVs.getNumElements(); i != e; ++i)<br>
>        CU.createGlobalVariableDIE(DIGlobalVariable(GVs.getElement(i)));<br>
> -    DIArray SPs = CUNode.getSubprograms();<br>
> -    for (unsigned i = 0, e = SPs.getNumElements(); i != e; ++i)<br>
> -      SPMap.insert(std::make_pair(SPs.getElement(i), &CU));<br>
>      DIArray EnumTypes = CUNode.getEnumTypes();<br>
>      for (unsigned i = 0, e = EnumTypes.getNumElements(); i != e; ++i) {<br>
>        DIType Ty(EnumTypes.getElement(i));<br>
> @@ -833,12 +835,13 @@ void DwarfDebug::finishSubprogramDefinit<br>
>            // If this subprogram has an abstract definition, reference that<br>
>            SPCU->addDIEEntry(*D, dwarf::DW_AT_abstract_origin, *AbsSPDIE);<br>
>        } else {<br>
> -        if (!D)<br>
> +        if (!D && TheCU.getEmissionKind() != DIBuilder::LineTablesOnly)<br>
>            // Lazily construct the subprogram if we didn't see either concrete or<br>
>            // inlined versions during codegen.<br>
>            D = SPCU->getOrCreateSubprogramDIE(SP);<br>
> -        // And attach the attributes<br>
> -        SPCU->applySubprogramAttributesToDefinition(SP, *D);<br>
> +        if (D)<br>
> +          // And attach the attributes<br>
> +          SPCU->applySubprogramAttributesToDefinition(SP, *D);<br>
>        }<br>
>      }<br>
>    }<br>
> @@ -1667,6 +1670,17 @@ void DwarfDebug::endFunction(const Machi<br>
><br>
>    LexicalScope *FnScope = LScopes.getCurrentFunctionScope();<br>
>    DwarfCompileUnit &TheCU = *SPMap.lookup(FnScope->getScopeNode());<br>
> +  if (TheCU.getCUNode().getEmissionKind() == DIBuilder::LineTablesOnly && LScopes.getAbstractScopesList().empty()) {<br>
> +    assert(ScopeVariables.empty());<br>
> +    assert(CurrentFnArguments.empty());<br>
> +    assert(DbgValues.empty());<br>
> +    assert(AbstractVariables.empty());<br>
> +    LabelsBeforeInsn.clear();<br>
> +    LabelsAfterInsn.clear();<br>
> +    PrevLabel = nullptr;<br>
> +    CurFn = nullptr;<br>
> +    return;<br>
> +  }<br>
><br>
>    // Construct abstract scopes.<br>
>    for (LexicalScope *AScope : LScopes.getAbstractScopesList()) {<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div></div><br></div></div>
</blockquote></div><br></div>