From: Michel Dänzer Date: Thu, 21 Aug 2014 10:30:22 +0000 (-0400) Subject: st/clover: Fix build against LLVM SVN >= r215967 v2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ba225c1ab3682fcba33c8b4103afed22e3b3621;p=mesa.git st/clover: Fix build against LLVM SVN >= r215967 v2 v2: Tom Stellard - Properly destroy the Module Reviewed-by: Francisco Jerez --- diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index 5d2efc4461c..d351bc5c3a2 100644 --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -234,7 +234,11 @@ namespace { memcpy(address_spaces, c.getTarget().getAddressSpaceMap(), sizeof(address_spaces)); +#if HAVE_LLVM >= 0x0306 + return act.takeModule().release(); +#else return act.takeModule(); +#endif } void @@ -415,13 +419,21 @@ clover::compile_program_llvm(const compat::string &source, internalize_functions(mod, kernels); + module m; // Build the clover::module switch (ir) { case PIPE_SHADER_IR_TGSI: //XXX: Handle TGSI assert(0); - return module(); + m = module(); + break; default: - return build_module_llvm(mod, kernels, address_spaces); + m = build_module_llvm(mod, kernels, address_spaces); + break; } +#if HAVE_LLVM >= 0x0306 + // LLVM 3.6 and newer, the user takes ownership of the module. + delete mod; +#endif + return m; }