From 0f4dc3166c9604b781d92a9acfd1fd13c4915846 Mon Sep 17 00:00:00 2001 From: Sreelakshmi Haridas Maruthur Date: Thu, 17 Mar 2022 14:27:24 -0600 Subject: [PATCH] conversions: Use volatile qualifier to prevent optimizations (#1399) Use volatile to prevent clang optimizations, fix int2float --- test_conformance/conversions/basic_test_conversions.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test_conformance/conversions/basic_test_conversions.cpp b/test_conformance/conversions/basic_test_conversions.cpp index 32998841..3ee072da 100644 --- a/test_conformance/conversions/basic_test_conversions.cpp +++ b/test_conformance/conversions/basic_test_conversions.cpp @@ -696,7 +696,8 @@ static void int2short( void *out, void *in){ ((cl_short*) out)[0] = ((cl_int*) i static void int2uint( void *out, void *in){ ((cl_uint*) out)[0] = ((cl_int*) in)[0]; } static void int2float( void *out, void *in) { - cl_int l = ((cl_int*) in)[0]; + // Use volatile to prevent optimization by Clang compiler + volatile cl_int l = ((cl_int *)in)[0]; ((float*) out)[0] = (l == 0 ? 0.0f : (float) l); // Per IEEE-754-2008 5.4.1, 0's always convert to +0.0 } static void int2double( void *out, void *in)