diff options
| author | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2019-06-24 10:06:40 +0000 |
|---|---|---|
| committer | Sven van Haastregt <sven.vanhaastregt@arm.com> | 2019-06-24 10:06:40 +0000 |
| commit | b502a44110ff38ea22abf01d38aa698fc9ff6198 (patch) | |
| tree | ca87400dec03a673b8b38bab34d444682415088a | |
| parent | 853dfab799f19ce6b1fa1cadab7c7c47b0378ed3 (diff) | |
| download | bcm5719-llvm-b502a44110ff38ea22abf01d38aa698fc9ff6198.tar.gz bcm5719-llvm-b502a44110ff38ea22abf01d38aa698fc9ff6198.zip | |
[OpenCL] Restore ATOMIC_VAR_INIT
We accidentally lost the ATOMIC_VAR_INIT and ATOMIC_FLAG_INIT macros
in r363794.
Also put the `memory_order` typedef back inside a `>= CL2.0` guard.
llvm-svn: 364174
| -rw-r--r-- | clang/lib/Headers/opencl-c-base.h | 7 | ||||
| -rw-r--r-- | clang/test/Headers/opencl-c-header.cl | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/clang/lib/Headers/opencl-c-base.h b/clang/lib/Headers/opencl-c-base.h index 19aaa90c1a7..a82954ddd32 100644 --- a/clang/lib/Headers/opencl-c-base.h +++ b/clang/lib/Headers/opencl-c-base.h @@ -297,8 +297,11 @@ typedef enum memory_scope { * image memory. */ #define CLK_IMAGE_MEM_FENCE 0x04 -#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0 +#ifndef ATOMIC_VAR_INIT +#define ATOMIC_VAR_INIT(x) (x) +#endif //ATOMIC_VAR_INIT +#define ATOMIC_FLAG_INIT 0 // enum values aligned with what clang uses in EmitAtomicExpr() typedef enum memory_order @@ -310,6 +313,8 @@ typedef enum memory_order memory_order_seq_cst = __ATOMIC_SEQ_CST } memory_order; +#endif //__OPENCL_C_VERSION__ >= CL_VERSION_2_0 + // OpenCL v1.1 s6.11.3, v1.2 s6.12.14, v2.0 s6.13.14 - Image Read and Write Functions // These values need to match the runtime equivalent diff --git a/clang/test/Headers/opencl-c-header.cl b/clang/test/Headers/opencl-c-header.cl index d65a219da30..8183a8c1f79 100644 --- a/clang/test/Headers/opencl-c-header.cl +++ b/clang/test/Headers/opencl-c-header.cl @@ -80,6 +80,10 @@ void test_atomics(__generic volatile unsigned int* a) { } #endif +// Verify that ATOMIC_VAR_INIT is defined. +#if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_2_0) +global atomic_int z = ATOMIC_VAR_INIT(99); +#endif //__OPENCL_C_VERSION__ // Verify that non-builtin cl_intel_planar_yuv extension is defined from // OpenCL 1.2 onwards. |

