summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric Nugteren <web@cedricnugteren.nl>2018-04-26 21:10:17 +0200
committerCedric Nugteren <web@cedricnugteren.nl>2018-04-26 21:10:17 +0200
commit7b416c8686f7cc83c79c886e24851db33baacf80 (patch)
treea2a44984d0329e7a75c2d70654c5a02a0f1e0ea0
parent5d46a3193e9034ba567950f166f4ab2de326fee0 (diff)
Fixed an access violation when compiled with Visual Studio upon releasing the OpenCL program
-rw-r--r--CHANGELOG1
-rw-r--r--src/clpp11.hpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG
index b29c3a75..621fa9b9 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -6,6 +6,7 @@ Development (next version)
- Improved the performance potential by adding a second tunable GEMM kernel with 2D register tiling
- Re-added a local memory size constraint to the tuners
- Updated and reorganised the CLBlast documentation
+- Fixed an access violation when compiled with Visual Studio upon releasing the OpenCL program
- Various minor fixes and enhancements
- Added tuned parameters for various devices (see doc/tuning.md)
- Added non-BLAS level-1 routines:
diff --git a/src/clpp11.hpp b/src/clpp11.hpp
index 2119f26b..c4b721b9 100644
--- a/src/clpp11.hpp
+++ b/src/clpp11.hpp
@@ -442,7 +442,9 @@ class Program {
// Source-based constructor with memory management
explicit Program(const Context &context, const std::string &source):
program_(new cl_program, [](cl_program* p) {
- if (*p) { CheckErrorDtor(clReleaseProgram(*p)); }
+ #ifndef _MSC_VER // 'clReleaseProgram' caused an access violation with Visual Studio
+ if (*p) { CheckErrorDtor(clReleaseProgram(*p)); }
+ #endif
delete p;
}) {
const char *source_ptr = &source[0];