[llvm] r210299 - Fix null dereference with -debug-only=dwarfdebug

Justin Bogner mail at justinbogner.com
Mon Jun 9 11:02:33 PDT 2014


Alexey Samsonov <vonosmas at gmail.com> writes:
> On Mon, Jun 9, 2014 at 9:02 AM, Justin Bogner <mail at justinbogner.com> wrote:
>
>> Alexey Samsonov <vonosmas at gmail.com> writes:
>>> --- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
>>> +++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Thu Jun  5 18:10:19 2014
>>> @@ -1220,6 +1220,11 @@ DwarfDebug::collectVariableInfo(SmallPtr
>>>    if (Begin->getNumOperands() > 1 && Begin->getOperand(0).isReg() &
>>&
>>>      !Begin->getOperand(0).getReg())
>>>     continue;
>>> +   DEBUG(dbgs() << "DotDebugLoc Pair:\n" << "\t" << *Begin);
>>> +   if (End != nullptr)
>>> +    DEBUG(dbgs() << "\t" << *End);
>> 
>> Missed a newline here?
>
> Should be fine, newline is inserted automatically when you print a
> MachineInstruction.

Ok, then...

>>> +   else
>>> +    DEBUG(dbgs() << "\tNULL\n");

should we remove the newline here?

>>>    const MCSymbol *StartLabel = getLabelBeforeInsn(Begin);
>>>    assert(StartLabel && "Forgot label before DBG_VALUE starting a range!");
>>> @@ -1233,8 +1238,6 @@ DwarfDebug::collectVariableInfo(SmallPtr
>>>     EndLabel = getLabelBeforeInsn(std::next(I)->first);
>>>    assert(EndLabel && "Forgot label after instruction ending a range!");
>>>
>>> -   DEBUG(dbgs() << "DotDebugLoc Pair:\n"
>>> -          << "\t" << *Begin << "\t" << *End << "\n");
>>>    DebugLocEntry Loc(StartLabel, EndLabel, getDebugLocValue(Begin), TheCU);
>>>    if (DebugLoc.empty() || !DebugLoc.back().Merge(Loc))
>>>     DebugLoc.push_back(std::move(Loc));



More information about the llvm-commits mailing list