diff options
-rw-r--r-- | src/gallium/state_trackers/clover/llvm/compat.hpp | 14 | ||||
-rw-r--r-- | src/gallium/state_trackers/clover/llvm/invocation.cpp | 4 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/clover/llvm/compat.hpp b/src/gallium/state_trackers/clover/llvm/compat.hpp index b040902fcfe..629a759e05d 100644 --- a/src/gallium/state_trackers/clover/llvm/compat.hpp +++ b/src/gallium/state_trackers/clover/llvm/compat.hpp @@ -167,6 +167,20 @@ namespace clover { #endif } + template<typename T> inline bool + create_compiler_invocation_from_args(clang::CompilerInvocation &cinv, + T copts, + clang::DiagnosticsEngine &diag) + { +#if HAVE_LLVM >= 0x1000 + return clang::CompilerInvocation::CreateFromArgs( + cinv, copts, diag); +#else + return clang::CompilerInvocation::CreateFromArgs( + cinv, copts.data(), copts.data() + copts.size(), diag); +#endif + } + template<typename T, typename M> T get_abi_type(const T &arg_type, const M &mod) { #if HAVE_LLVM >= 0x0700 diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp index 0a677ce2eaa..deaf1cc4b43 100644 --- a/src/gallium/state_trackers/clover/llvm/invocation.cpp +++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp @@ -199,8 +199,8 @@ namespace { const target &target = dev.ir_target(); const std::string &device_clc_version = dev.device_clc_version(); - if (!clang::CompilerInvocation::CreateFromArgs( - c->getInvocation(), copts.data(), copts.data() + copts.size(), diag)) + if (!compat::create_compiler_invocation_from_args( + c->getInvocation(), copts, diag)) throw invalid_build_options_error(); diag_buffer->FlushDiagnostics(diag); |