From 7acc88be0312c721bc082ed9934e381d297f4707 Mon Sep 17 00:00:00 2001 From: Sven van Haastregt Date: Wed, 15 Jun 2022 10:54:46 +0100 Subject: [PATCH] [OpenCL] Reword unknown extension pragma diagnostic For newer OpenCL extensions that do not require a pragma, such as `cl_khr_subgroup_shuffle`, a user could still accidentally attempt to use a pragma. This would result in a warning "unknown OpenCL extension 'cl_khr_subgroup_shuffle' - ignoring" which could be mistakenly interpreted as "clang does not support this extension at all" instead of "clang does not require any pragma for this extension". Differential Revision: https://reviews.llvm.org/D126660 --- clang/include/clang/Basic/DiagnosticParseKinds.td | 2 +- clang/test/Headers/opencl-c-header.cl | 2 +- clang/test/Parser/opencl-pragma.cl | 2 +- clang/test/SemaOpenCL/extension-begin.cl | 4 +- clang/test/SemaOpenCL/extension-version.cl | 48 +++++++++++------------ 5 files changed, 29 insertions(+), 29 deletions(-) diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index dd6bba7..b0abe2a 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1278,7 +1278,7 @@ def warn_pragma_expected_colon : Warning< def warn_pragma_expected_predicate : Warning< "expected %select{'enable', 'disable', 'begin' or 'end'|'disable'}0 - ignoring">, InGroup; def warn_pragma_unknown_extension : Warning< - "unknown OpenCL extension %0 - ignoring">, InGroup; + "OpenCL extension %0 unknown or does not require pragma - ignoring">, InGroup; def warn_pragma_unsupported_extension : Warning< "unsupported OpenCL extension %0 - ignoring">, InGroup; def warn_pragma_extension_is_core : Warning< diff --git a/clang/test/Headers/opencl-c-header.cl b/clang/test/Headers/opencl-c-header.cl index 4558424..8242798 100644 --- a/clang/test/Headers/opencl-c-header.cl +++ b/clang/test/Headers/opencl-c-header.cl @@ -100,7 +100,7 @@ global atomic_int z = ATOMIC_VAR_INIT(99); #if defined(__OPENCL_CPP_VERSION__) || (__OPENCL_C_VERSION__ >= CL_VERSION_1_2) // expected-no-diagnostics #else //__OPENCL_C_VERSION__ -// expected-warning@+2{{unknown OpenCL extension 'cl_intel_planar_yuv' - ignoring}} +// expected-warning@+2{{OpenCL extension 'cl_intel_planar_yuv' unknown or does not require pragma - ignoring}} #endif //__OPENCL_C_VERSION__ #pragma OPENCL EXTENSION cl_intel_planar_yuv : enable diff --git a/clang/test/Parser/opencl-pragma.cl b/clang/test/Parser/opencl-pragma.cl index 02f053f..76e2cdd 100644 --- a/clang/test/Parser/opencl-pragma.cl +++ b/clang/test/Parser/opencl-pragma.cl @@ -2,7 +2,7 @@ #pragma OPENCL EXTENSION cl_khr_fp16 : enable -#pragma OPENCL EXTENSION cl_no_such_extension : disable /* expected-warning {{unknown OpenCL extension 'cl_no_such_extension' - ignoring}} */ +#pragma OPENCL EXTENSION cl_no_such_extension : disable /* expected-warning {{OpenCL extension 'cl_no_such_extension' unknown or does not require pragma - ignoring}} */ #pragma OPENCL EXTENSION all : disable #pragma OPENCL EXTENSION all : enable /* expected-warning {{expected 'disable' - ignoring}} */ diff --git a/clang/test/SemaOpenCL/extension-begin.cl b/clang/test/SemaOpenCL/extension-begin.cl index 9124ceb..dc8bd76 100644 --- a/clang/test/SemaOpenCL/extension-begin.cl +++ b/clang/test/SemaOpenCL/extension-begin.cl @@ -18,8 +18,8 @@ #pragma OPENCL EXTENSION my_ext : enable #ifndef IMPLICIT_INCLUDE -// expected-warning@-2 {{unknown OpenCL extension 'my_ext' - ignoring}} -// expected-warning@+2 {{unknown OpenCL extension 'my_ext' - ignoring}} +// expected-warning@-2 {{OpenCL extension 'my_ext' unknown or does not require pragma - ignoring}} +// expected-warning@+2 {{OpenCL extension 'my_ext' unknown or does not require pragma - ignoring}} #endif // IMPLICIT_INCLUDE #pragma OPENCL EXTENSION my_ext : disable diff --git a/clang/test/SemaOpenCL/extension-version.cl b/clang/test/SemaOpenCL/extension-version.cl index d135970..4d92eff 100644 --- a/clang/test/SemaOpenCL/extension-version.cl +++ b/clang/test/SemaOpenCL/extension-version.cl @@ -217,51 +217,51 @@ // Check that pragmas for the OpenCL 3.0 features are rejected. #pragma OPENCL EXTENSION __opencl_c_int64 : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_int64' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_int64' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_3d_image_writes : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_3d_image_writes' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_3d_image_writes' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_atomic_order_acq_rel : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_atomic_order_acq_rel' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_atomic_order_acq_rel' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_atomic_order_seq_cst : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_atomic_order_seq_cst' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_atomic_order_seq_cst' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_device_enqueue : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_device_enqueue' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_device_enqueue' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_fp64 : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_fp64' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_fp64' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_generic_address_space : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_generic_address_space' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_images : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_images' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_images' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_pipes : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_pipes' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_pipes' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_program_scope_global_variables : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_program_scope_global_variables' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_program_scope_global_variables' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_read_write_images : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_read_write_images' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_read_write_images' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_subgroups : disable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_subgroups' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_subgroups' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_int64 : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_int64' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_int64' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_3d_image_writes : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_3d_image_writes' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_3d_image_writes' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_atomic_order_acq_rel : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_atomic_order_acq_rel' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_atomic_order_acq_rel' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_atomic_order_seq_cst : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_atomic_order_seq_cst' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_atomic_order_seq_cst' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_device_enqueue : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_device_enqueue' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_device_enqueue' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_fp64 : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_fp64' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_fp64' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_generic_address_space : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_generic_address_space' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_images : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_images' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_images' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_pipes : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_pipes' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_pipes' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_program_scope_global_variables : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_program_scope_global_variables' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_program_scope_global_variables' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_read_write_images : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_read_write_images' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_read_write_images' unknown or does not require pragma - ignoring}} #pragma OPENCL EXTENSION __opencl_c_subgroups : enable -//expected-warning@-1{{unknown OpenCL extension '__opencl_c_subgroups' - ignoring}} +//expected-warning@-1{{OpenCL extension '__opencl_c_subgroups' unknown or does not require pragma - ignoring}} -- 2.7.4