diff --git a/CHANGES b/CHANGES index 1b83935e2ca..3e86439bcda 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,15 @@ ------------------------------------------------------------------------ The list of most significant changes made over time in Parallel STL. +Parallel STL release within Intel(R) Parallel Studio XE 2019 Update 1 +PSTL_VERSION == 202 + +Features / APIs: + +- Fixed compilation error for reduce and transform_reduce algorithms + with Microsoft* Visual Studio 2017 15.8. + +------------------------------------------------------------------------ Parallel STL 20181004 release PSTL_VERSION == 201 diff --git a/README.md b/README.md index 216fb094b33..81a5d41872c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Parallel STL -[![Stable release](https://img.shields.io/badge/version-20181004-green.svg)](https://github.com/intel/parallelstl/releases/tag/20181004) +[![Stable release](https://img.shields.io/badge/version-20181109-green.svg)](https://github.com/intel/parallelstl/releases/tag/20181109) [![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE) Parallel STL is an implementation of the C++ standard library algorithms with support for execution policies, diff --git a/build/android.inc b/build/android.inc index 7cb094230df..55cb0a59b47 100644 --- a/build/android.inc +++ b/build/android.inc @@ -22,7 +22,7 @@ SDL_FLAGS = -fstack-protector -Wformat -Wformat-security CPLUS_FLAGS += $(TARGET_CFLAGS) $(PIE_FLAGS) $(SDL_FLAGS) # Paths to the NDK prebuilt tools and libraries -ifneq (,$(findstring $(ndk_version),r16 r16b)) +ifeq (,$(findstring $(ndk_version), $(foreach v, 7 8 9 10 11 12 13 14 15,r$(v) r$(v)b r$(v)c r$(v)d r$(v)e))) ifeq (clang,$(compiler)) # Since Android* NDK r16 another sysroot and isystem paths have to be specified CPLUS_FLAGS += --sysroot=$(NDK_ROOT)/sysroot -isystem $(NDK_ROOT)/sysroot/usr/include/$(TRIPLE) diff --git a/doc/Release_Notes.txt b/doc/Release_Notes.txt index 814b1d1c4ef..1cca0238051 100644 --- a/doc/Release_Notes.txt +++ b/doc/Release_Notes.txt @@ -81,7 +81,7 @@ Software - Supported Compilers GNU Compilers (gcc) 4.8 - 7.1 Clang* 3.3 - 3.8 Xcode* 7.0 - 9.1 - Android* NDK r13 - r16 + Android* NDK r13 - r17b Known Issues or limitations diff --git a/include/pstl/internal/pstl_config.h b/include/pstl/internal/pstl_config.h index 3c70483e900..5144402b700 100644 --- a/include/pstl/internal/pstl_config.h +++ b/include/pstl/internal/pstl_config.h @@ -21,7 +21,7 @@ #ifndef __PSTL_config_H #define __PSTL_config_H -#define PSTL_VERSION 201 +#define PSTL_VERSION 202 #define PSTL_VERSION_MAJOR (PSTL_VERSION/100) #define PSTL_VERSION_MINOR (PSTL_VERSION - PSTL_VERSION_MAJOR * 100) diff --git a/include/pstl/internal/unseq_backend_simd.h b/include/pstl/internal/unseq_backend_simd.h index ca583f2b3ca..d24370b5018 100644 --- a/include/pstl/internal/unseq_backend_simd.h +++ b/include/pstl/internal/unseq_backend_simd.h @@ -396,7 +396,7 @@ simd_transform_reduce(_Size __n, _Tp __init, _BinaryOperation __binary_op, _Unar const std::size_t __lane_size = 64; const std::size_t block_size = __lane_size / sizeof(_Tp); if (__n > 2 * block_size && block_size > 1) { - typename std::aligned_storage::type __lane_[block_size]; + alignas(__lane_size) char __lane_[__lane_size]; _Tp* __lane = reinterpret_cast<_Tp*>(__lane_); // initializer @@ -422,6 +422,11 @@ __PSTL_PRAGMA_SIMD for (_Size __i = 0; __i < block_size; ++__i) { __init = __binary_op(__init, __lane[__i]); } + // destroyer +__PSTL_PRAGMA_SIMD + for (_Size __i = 0; __i < block_size; ++__i) { + __lane[__i].~_Tp(); + } } else { for (_Size __i = 0; __i < __n; ++__i) {