[llvm] r334544 - Add null check to Intel JIT event listener

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 13 11:59:09 PDT 2018


I should add,  r334543  was reverted in r334566, and the buildbot went
green:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/

On Wed, Jun 13, 2018 at 11:58 AM Reid Kleckner <rnk at google.com> wrote:

> It's more likely that r334543 enabled building the intel jit event code in
> the first place. I think the null check is still correct and we should keep
> it. There are no owned raw pointers here, everything is handled with RAII.
>
> On Tue, Jun 12, 2018 at 5:26 PM Matt Morehouse <mascasa at google.com> wrote:
>
>> This appears to have caused a memory leak:
>> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/19431
>>
>> On Tue, Jun 12, 2018 at 1:58 PM Reid Kleckner via llvm-commits <
>> llvm-commits at lists.llvm.org> wrote:
>>
>>> Author: rnk
>>> Date: Tue Jun 12 13:54:11 2018
>>> New Revision: 334544
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=334544&view=rev
>>> Log:
>>> Add null check to Intel JIT event listener
>>>
>>> Modified:
>>>
>>> llvm/trunk/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
>>>
>>> Modified:
>>> llvm/trunk/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
>>> URL:
>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp?rev=334544&r1=334543&r2=334544&view=diff
>>>
>>> ==============================================================================
>>> ---
>>> llvm/trunk/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
>>> (original)
>>> +++
>>> llvm/trunk/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp Tue
>>> Jun 12 13:54:11 2018
>>> @@ -101,15 +101,17 @@ void IntelJITEventListener::NotifyObject
>>>                                         const
>>> RuntimeDyld::LoadedObjectInfo &L) {
>>>
>>>    OwningBinary<ObjectFile> DebugObjOwner = L.getObjectForDebug(Obj);
>>> -  const ObjectFile &DebugObj = *DebugObjOwner.getBinary();
>>> +  const ObjectFile *DebugObj = DebugObjOwner.getBinary();
>>> +  if (!DebugObj)
>>> +    return;
>>>
>>>    // Get the address of the object image for use as a unique identifier
>>> -  const void* ObjData = DebugObj.getData().data();
>>> -  std::unique_ptr<DIContext> Context = DWARFContext::create(DebugObj);
>>> +  const void* ObjData = DebugObj->getData().data();
>>> +  std::unique_ptr<DIContext> Context = DWARFContext::create(*DebugObj);
>>>    MethodAddressVector Functions;
>>>
>>>    // Use symbol info to iterate functions in the object.
>>> -  for (const std::pair<SymbolRef, uint64_t> &P :
>>> computeSymbolSizes(DebugObj)) {
>>> +  for (const std::pair<SymbolRef, uint64_t> &P :
>>> computeSymbolSizes(*DebugObj)) {
>>>      SymbolRef Sym = P.first;
>>>      std::vector<LineNumberInfo> LineInfo;
>>>      std::string SourceFileName;
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180613/50945d88/attachment.html>


More information about the llvm-commits mailing list