From 69bbd209040f3af29b5ac17c4e5c3dbb0687ef5c Mon Sep 17 00:00:00 2001 From: Ellen Norris-Thompson Date: Tue, 9 Feb 2021 18:46:11 +0000 Subject: [PATCH] Enable narrowing errors for more directories Moves -Wno-narrowing down to only run on suites with many narrowing errors. Includes some quick fixes for one-off errors this caused. Contributes #787 Signed-off-by: Ellen Norris-Thompson --- test_conformance/CMakeLists.txt | 4 --- test_conformance/api/test_queries.cpp | 2 +- test_conformance/atomics/test_atomics.cpp | 11 ++++++-- test_conformance/basic/CMakeLists.txt | 4 +++ test_conformance/compiler/CMakeLists.txt | 4 +++ test_conformance/computeinfo/main.cpp | 10 +++---- test_conformance/conversions/CMakeLists.txt | 4 +++ .../device_execution/execute_block.cpp | 2 +- .../test_device_partition.cpp | 26 ++++++++++++------- test_conformance/integer_ops/CMakeLists.txt | 4 +++ .../non_uniform_work_group/CMakeLists.txt | 4 +++ test_conformance/profiling/execute.cpp | 2 +- test_conformance/profiling/readImage.cpp | 2 +- test_conformance/profiling/writeImage.cpp | 2 +- test_conformance/spir/main.cpp | 3 ++- test_conformance/spirv_new/CMakeLists.txt | 4 +++ 16 files changed, 62 insertions(+), 26 deletions(-) diff --git a/test_conformance/CMakeLists.txt b/test_conformance/CMakeLists.txt index 4685606b71..87d68597f0 100644 --- a/test_conformance/CMakeLists.txt +++ b/test_conformance/CMakeLists.txt @@ -1,10 +1,6 @@ # Remember current source directory (`test_conformance'). set( CLConf_Install_Base_Dir "${CMAKE_CURRENT_SOURCE_DIR}" ) -if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") - add_cxx_flag_if_supported(-Wno-narrowing) -endif() - set(HARNESS_LIB harness) add_subdirectory( allocations ) diff --git a/test_conformance/api/test_queries.cpp b/test_conformance/api/test_queries.cpp index 469a19349a..23b0cc87aa 100644 --- a/test_conformance/api/test_queries.cpp +++ b/test_conformance/api/test_queries.cpp @@ -152,7 +152,7 @@ int sampler_param_test(cl_sampler sampler, cl_sampler_info param_name, return 0; } -static cl_int normalized_coord_values[] = { CL_TRUE, CL_FALSE }; +static cl_bool normalized_coord_values[] = { CL_TRUE, CL_FALSE }; static cl_addressing_mode addressing_mode_values[] = { CL_ADDRESS_NONE, CL_ADDRESS_CLAMP_TO_EDGE, CL_ADDRESS_CLAMP, CL_ADDRESS_REPEAT, CL_ADDRESS_MIRRORED_REPEAT diff --git a/test_conformance/atomics/test_atomics.cpp b/test_conformance/atomics/test_atomics.cpp index 34b34ed38a..83efe68efb 100644 --- a/test_conformance/atomics/test_atomics.cpp +++ b/test_conformance/atomics/test_atomics.cpp @@ -1011,8 +1011,15 @@ cl_long test_atomic_and_result_long( size_t size, cl_long *startRefValues, size_ int test_atomic_and(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) { - TestFns set = { 0xffffffff, 0xffffffffffffffffLL, test_bitwise_num_results, - test_atomic_and_result_int, NULL, NULL, test_atomic_and_result_long, NULL, NULL }; + TestFns set = { (int)0xffffffff, + (long long)0xffffffffffffffffLL, + test_bitwise_num_results, + test_atomic_and_result_int, + NULL, + NULL, + test_atomic_and_result_long, + NULL, + NULL }; if( test_atomic_function_set( deviceID, context, queue, num_elements, atom_and_core, set, true, /*matchGroupSize*/ false, /*usingAtomicPrefix*/ false ) != 0 ) return -1; diff --git a/test_conformance/basic/CMakeLists.txt b/test_conformance/basic/CMakeLists.txt index c5c4b5f0cc..d2e5ef51cc 100644 --- a/test_conformance/basic/CMakeLists.txt +++ b/test_conformance/basic/CMakeLists.txt @@ -1,5 +1,9 @@ set(MODULE_NAME BASIC) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + set(${MODULE_NAME}_SOURCES main.cpp test_fpmath_float.cpp test_fpmath_float2.cpp test_fpmath_float4.cpp diff --git a/test_conformance/compiler/CMakeLists.txt b/test_conformance/compiler/CMakeLists.txt index e703471d28..5806469a98 100644 --- a/test_conformance/compiler/CMakeLists.txt +++ b/test_conformance/compiler/CMakeLists.txt @@ -1,5 +1,9 @@ set(MODULE_NAME COMPILER) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + set(${MODULE_NAME}_SOURCES main.cpp test_build_helpers.cpp diff --git a/test_conformance/computeinfo/main.cpp b/test_conformance/computeinfo/main.cpp index 4860b44561..883abfe4c6 100644 --- a/test_conformance/computeinfo/main.cpp +++ b/test_conformance/computeinfo/main.cpp @@ -35,11 +35,11 @@ typedef struct } device_info; device_info device_infos[] = { - { CL_DEVICE_TYPE_DEFAULT, "CL_DEVICE_TYPE_DEFAULT", -1, NULL }, - { CL_DEVICE_TYPE_CPU, "CL_DEVICE_TYPE_CPU", -1, NULL }, - { CL_DEVICE_TYPE_GPU, "CL_DEVICE_TYPE_GPU", -1, NULL }, - { CL_DEVICE_TYPE_ACCELERATOR, "CL_DEVICE_TYPE_ACCELERATOR", -1, NULL }, - { CL_DEVICE_TYPE_ALL, "CL_DEVICE_TYPE_ALL", -1, NULL }, + { CL_DEVICE_TYPE_DEFAULT, "CL_DEVICE_TYPE_DEFAULT", 0, NULL }, + { CL_DEVICE_TYPE_CPU, "CL_DEVICE_TYPE_CPU", 0, NULL }, + { CL_DEVICE_TYPE_GPU, "CL_DEVICE_TYPE_GPU", 0, NULL }, + { CL_DEVICE_TYPE_ACCELERATOR, "CL_DEVICE_TYPE_ACCELERATOR", 0, NULL }, + { CL_DEVICE_TYPE_ALL, "CL_DEVICE_TYPE_ALL", 0, NULL }, }; // config types diff --git a/test_conformance/conversions/CMakeLists.txt b/test_conformance/conversions/CMakeLists.txt index 523b6ead97..a4bef70b73 100644 --- a/test_conformance/conversions/CMakeLists.txt +++ b/test_conformance/conversions/CMakeLists.txt @@ -1,5 +1,9 @@ set(MODULE_NAME CONVERSIONS) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + set (${MODULE_NAME}_SOURCES Sleep.cpp test_conversions.cpp basic_test_conversions.cpp ) diff --git a/test_conformance/device_execution/execute_block.cpp b/test_conformance/device_execution/execute_block.cpp index e5b13eff7e..d2f4776313 100644 --- a/test_conformance/device_execution/execute_block.cpp +++ b/test_conformance/device_execution/execute_block.cpp @@ -1016,7 +1016,7 @@ int test_execute_block(cl_device_id device, cl_context context, cl_command_queue size_t ret_len; cl_int n, err_ret, res = 0; clCommandQueueWrapper dev_queue; - cl_int kernel_results[MAX_GWS] = {0xDEADBEEF}; + cl_int kernel_results[MAX_GWS] = { (cl_int)0xDEADBEEF }; size_t max_local_size = 1; err_ret = clGetDeviceInfo(device, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(max_local_size), &max_local_size, &ret_len); diff --git a/test_conformance/device_partition/test_device_partition.cpp b/test_conformance/device_partition/test_device_partition.cpp index f9952ec8ad..ce5c56628f 100644 --- a/test_conformance/device_partition/test_device_partition.cpp +++ b/test_conformance/device_partition/test_device_partition.cpp @@ -355,7 +355,8 @@ int test_device_set(size_t deviceCount, size_t queueCount, cl_device_id *devices } -int init_device_partition_test(cl_device_id parentDevice, cl_uint &maxComputeUnits, cl_uint &maxSubDevices) +int init_device_partition_test(cl_device_id parentDevice, + cl_uint &maxComputeUnits, cl_uint &maxSubDevices) { int err = clGetDeviceInfo(parentDevice, CL_DEVICE_MAX_COMPUTE_UNITS, sizeof(maxComputeUnits), &maxComputeUnits, NULL); test_error( err, "Unable to get maximal number of compute units" ); @@ -451,14 +452,21 @@ int test_partition_of_device(cl_device_id deviceID, cl_context context, cl_comma #define PROPERTY_TYPES 8 cl_device_partition_property partitionProp[PROPERTY_TYPES][5] = { - { CL_DEVICE_PARTITION_EQUALLY, maxComputeUnits / 2, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_COUNTS, 1, maxComputeUnits - 1, CL_DEVICE_PARTITION_BY_COUNTS_LIST_END, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_NUMA, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE, 0, 0, 0 } , - { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE, 0, 0, 0 } + { CL_DEVICE_PARTITION_EQUALLY, (cl_int)maxComputeUnits / 2, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_COUNTS, 1, (cl_int)maxComputeUnits - 1, + CL_DEVICE_PARTITION_BY_COUNTS_LIST_END, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_NUMA, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE, 0, 0, 0 }, + { CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN, + CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE, 0, 0, 0 } }; // loop thru each type, creating sub-devices for each type diff --git a/test_conformance/integer_ops/CMakeLists.txt b/test_conformance/integer_ops/CMakeLists.txt index a045ef81c1..6285a70982 100644 --- a/test_conformance/integer_ops/CMakeLists.txt +++ b/test_conformance/integer_ops/CMakeLists.txt @@ -1,5 +1,9 @@ set(MODULE_NAME INTEGER_OPS) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + set(${MODULE_NAME}_SOURCES main.cpp test_int_basic_ops.cpp diff --git a/test_conformance/non_uniform_work_group/CMakeLists.txt b/test_conformance/non_uniform_work_group/CMakeLists.txt index 30c3a84610..7db5bcbb11 100644 --- a/test_conformance/non_uniform_work_group/CMakeLists.txt +++ b/test_conformance/non_uniform_work_group/CMakeLists.txt @@ -1,5 +1,9 @@ set(MODULE_NAME NON_UNIFORM_WORK_GROUP) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + set(${MODULE_NAME}_SOURCES main.cpp test_advanced_2d.cpp diff --git a/test_conformance/profiling/execute.cpp b/test_conformance/profiling/execute.cpp index edfc043c06..21bd4e2c25 100644 --- a/test_conformance/profiling/execute.cpp +++ b/test_conformance/profiling/execute.cpp @@ -318,7 +318,7 @@ static int kernelFilter( cl_device_id device, cl_context context, cl_command_que // read output image size_t origin[3] = { 0, 0, 0 }; - size_t region[3] = { w, h, 1 }; + size_t region[3] = { (size_t)w, (size_t)h, 1 }; err = clEnqueueReadImage( queue, memobjs[1], true, origin, region, 0, 0, outptr, 0, NULL, NULL); if( err != CL_SUCCESS ){ print_error( err, "clReadImage failed\n" ); diff --git a/test_conformance/profiling/readImage.cpp b/test_conformance/profiling/readImage.cpp index 9ba6b472e7..fd4da128e1 100644 --- a/test_conformance/profiling/readImage.cpp +++ b/test_conformance/profiling/readImage.cpp @@ -233,7 +233,7 @@ int read_image( cl_device_id device, cl_context context, cl_command_queue queue, } size_t origin[3] = { 0, 0, 0 }; - size_t region[3] = { w, h, 1 }; + size_t region[3] = { (size_t)w, (size_t)h, 1 }; err = clEnqueueReadImage( queue, memobjs[0], false, origin, region, 0, 0, dst, 0, NULL, &readEvent ); if( err != CL_SUCCESS ){ print_error( err, "clReadImage2D failed" ); diff --git a/test_conformance/profiling/writeImage.cpp b/test_conformance/profiling/writeImage.cpp index fbc8fbcdf1..096ed7a5e5 100644 --- a/test_conformance/profiling/writeImage.cpp +++ b/test_conformance/profiling/writeImage.cpp @@ -472,7 +472,7 @@ int write_image( cl_device_id device, cl_context context, cl_command_queue queue } size_t origin[3] = { 0, 0, 0 }; - size_t region[3] = { w, h, 1 }; + size_t region[3] = { (size_t)w, (size_t)h, 1 }; err = clEnqueueWriteImage( queue, memobjs[0], false, origin, region, 0, 0, inptr, 0, NULL, &writeEvent ); if( err != CL_SUCCESS ){ clReleaseMemObject(memobjs[0]); diff --git a/test_conformance/spir/main.cpp b/test_conformance/spir/main.cpp index 3a18988c70..c36c3938d7 100644 --- a/test_conformance/spir/main.cpp +++ b/test_conformance/spir/main.cpp @@ -167,7 +167,8 @@ static void get_spir_version(cl_device_id device, { auto major = v[v.find('.') - 1]; auto minor = v[v.find('.') + 1]; - versions.push_back(Version{ major - '0', minor - '0' }); + versions.push_back( + Version{ (cl_uint)(major - '0'), (cl_uint)(minor - '0') }); } } diff --git a/test_conformance/spirv_new/CMakeLists.txt b/test_conformance/spirv_new/CMakeLists.txt index 7500571d07..13d8bc7426 100644 --- a/test_conformance/spirv_new/CMakeLists.txt +++ b/test_conformance/spirv_new/CMakeLists.txt @@ -14,6 +14,10 @@ set(MODULE_NAME SPIRV_NEW) set(CMAKE_CXX_STANDARD 11) +if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "(Apple)?Clang") + add_cxx_flag_if_supported(-Wno-narrowing) +endif() + file(GLOB SPIRV_NEW_SOURCES "*.cpp") set(TEST_HARNESS_SOURCES