[llvm] r226949 - Fix the MSVC build with the new Orc JIT APIs
David Blaikie
dblaikie at gmail.com
Fri Jan 23 14:45:01 PST 2015
On Fri, Jan 23, 2015 at 2:25 PM, Reid Kleckner <reid at kleckner.net> wrote:
> Author: rnk
> Date: Fri Jan 23 16:25:47 2015
> New Revision: 226949
>
> URL: http://llvm.org/viewvc/llvm-project?rev=226949&view=rev
> Log:
> Fix the MSVC build with the new Orc JIT APIs
>
> Modified:
> llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
> llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
>
> Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h?rev=226949&r1=226948&r2=226949&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
> (original)
> +++ llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h Fri
> Jan 23 16:25:47 2015
> @@ -32,11 +32,17 @@ protected:
> /// had been provided by this instance. Higher level layers are
> responsible
> /// for taking any action required to handle the missing symbols.
> class LinkedObjectSet {
> + LinkedObjectSet(const LinkedObjectSet&) LLVM_DELETED_FUNCTION;
> + void operator=(const LinkedObjectSet&) LLVM_DELETED_FUNCTION;
> public:
> LinkedObjectSet(std::unique_ptr<RTDyldMemoryManager> MM)
> : MM(std::move(MM)),
> RTDyld(llvm::make_unique<RuntimeDyld>(&*this->MM)),
> State(Raw) {}
>
> + // MSVC 2012 cannot infer a move constructor, so write it out
> longhand.
> + LinkedObjectSet(LinkedObjectSet &&O)
> + : MM(std::move(O.MM)), RTDyld(std::move(O.RTDyld)),
> State(O.State) {}
> +
> std::unique_ptr<RuntimeDyld::LoadedObjectInfo>
> addObject(const object::ObjectFile &Obj) {
> return RTDyld->loadObject(Obj);
> @@ -74,7 +80,7 @@ protected:
>
> public:
> /// @brief Handle to a set of loaded objects.
> - typedef typename LinkedObjectSetListT::iterator ObjSetHandleT;
> + typedef LinkedObjectSetListT::iterator ObjSetHandleT;
> };
>
> /// @brief Default (no-op) action to perform when loading objects.
>
> Modified: llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h?rev=226949&r1=226948&r2=226949&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (original)
> +++ llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h Fri Jan 23
> 16:25:47 2015
> @@ -129,7 +129,7 @@ public:
> setDataLayout(this->TM->getSubtargetImpl()->getDataLayout());
> }
>
> - void addModule(std::unique_ptr<Module> M) {
> + void addModule(std::unique_ptr<Module> M) override {
>
> // If this module doesn't have a DataLayout attached then attach the
> // default.
> @@ -258,7 +258,7 @@ private:
> const ObjListT &Objects,
> const LoadedObjInfoListT &Infos) const {
> M.UnfinalizedSections[H] =
> std::move(M.SectionsAllocatedSinceLastLoad);
> - M.SectionsAllocatedSinceLastLoad = {};
> + M.SectionsAllocatedSinceLastLoad = SectionAddrSet{};
>
MSVC supports braced init in this context/usage? Huh.
> assert(Objects.size() == Infos.size() &&
> "Incorrect number of Infos for Objects.");
> for (unsigned I = 0; I < Objects.size(); ++I)
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150123/5b0ce1ea/attachment.html>
More information about the llvm-commits
mailing list