From: Michel Dänzer <michel.daen...@amd.com> v2: Tom Stellard - Properly destroy the Module --- src/gallium/state_trackers/clover/llvm/invocation.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index 5d2efc4..d351bc5 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; } -- 1.8.5.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev