Author: tstellar Date: Mon May 14 10:17:14 2018 New Revision: 332263 URL: http://llvm.org/viewvc/llvm-project?rev=332263&view=rev Log: Merging r332176:
------------------------------------------------------------------------ r332176 | dim | 2018-05-12 12:59:54 -0700 (Sat, 12 May 2018) | 20 lines Clear converters map after X86 Domain Reassignment to avoid crashes Summary: As reported in PR37264, in some cases the X86 Domain Reassignment `runOnMachineFunction()` is called twice. Because it only deletes the `.second` members of its `InstrConverterBaseMap`, and does not clean up the map itself, this can lead to double frees and crashes. Use `DeleteContainerSeconds()` instead, so the `Converters` map can safely be reinitialized and its members re-deleted for each X86 Domain Reassignment pass. Reviewers: guyblank, craig.topper Reviewed By: craig.topper Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46425 ------------------------------------------------------------------------ Modified: llvm/branches/release_60/lib/Target/X86/X86DomainReassignment.cpp Modified: llvm/branches/release_60/lib/Target/X86/X86DomainReassignment.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_60/lib/Target/X86/X86DomainReassignment.cpp?rev=332263&r1=332262&r2=332263&view=diff ============================================================================== --- llvm/branches/release_60/lib/Target/X86/X86DomainReassignment.cpp (original) +++ llvm/branches/release_60/lib/Target/X86/X86DomainReassignment.cpp Mon May 14 10:17:14 2018 @@ -750,8 +750,7 @@ bool X86DomainReassignment::runOnMachine Changed = true; } - for (auto I : Converters) - delete I.second; + DeleteContainerSeconds(Converters); DEBUG(dbgs() << "***** Machine Function after Domain Reassignment *****\n"); DEBUG(MF.print(dbgs())); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits