]> granicus.if.org Git - llvm/commit
[Orc] Fix member variable ordering issue in OrcMCJITReplacement.
authorLang Hames <lhames@gmail.com>
Wed, 30 Aug 2017 00:47:42 +0000 (00:47 +0000)
committerLang Hames <lhames@gmail.com>
Wed, 30 Aug 2017 00:47:42 +0000 (00:47 +0000)
commiteb735545f15600c859e73d7150d218a320bc5e85
treef275bcc9a52f2a0a7c85fca0186b7500e149a8aa
parentcfcd4a35478076a79343337aacb97062e0e0dd18
[Orc] Fix member variable ordering issue in OrcMCJITReplacement.

https://reviews.llvm.org/D36888

From that review description:

When an OrcMCJITReplacement object gets destructed, LazyEmitLayer may still
contain a shared_ptr of a module, which requires ShouldDelete in the deleter.
But ShouldDelete gets destructed before LazyEmitLayer due to the order of
declaration in OrcMCJITReplacement, which leads to a crash, when the destructor
of LazyEmitLayer is executed.  Changing the order of declaration fixes this.

Patch by Moritz Kroll. Thanks Moritz!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312086 91177308-0d34-0410-b5e6-96231b3b80d8
lib/ExecutionEngine/Orc/OrcMCJITReplacement.h