From 3ba225c1ab3682fcba33c8b4103afed22e3b3621 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Michel=20D=C3=A4nzer?= Date: Thu, 21 Aug 2014 06:30:22 -0400 Subject: [PATCH] st/clover: Fix build against LLVM SVN >= r215967 v2 v2: Tom Stellard - Properly destroy the Module Reviewed-by: Francisco Jerez --- .../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 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; } -- 2.30.2