[clang] 7acc88b - [OpenCL] Reword unknown extension pragma diagnostic

Sven van Haastregt via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 15 02:55:06 PDT 2022


Author: Sven van Haastregt
Date: 2022-06-15T10:54:46+01:00
New Revision: 7acc88be0312c721bc082ed9934e381d297f4707

URL: https://github.com/llvm/llvm-project/commit/7acc88be0312c721bc082ed9934e381d297f4707
DIFF: https://github.com/llvm/llvm-project/commit/7acc88be0312c721bc082ed9934e381d297f4707.diff

LOG: [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

Added: 
    

Modified: 
    clang/include/clang/Basic/DiagnosticParseKinds.td
    clang/test/Headers/opencl-c-header.cl
    clang/test/Parser/opencl-pragma.cl
    clang/test/SemaOpenCL/extension-begin.cl
    clang/test/SemaOpenCL/extension-version.cl

Removed: 
    


################################################################################
diff  --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td
index dd6bba720ce2..b0abe2aa517e 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<IgnoredPragmas>;
 def warn_pragma_unknown_extension : Warning<
-  "unknown OpenCL extension %0 - ignoring">, InGroup<IgnoredPragmas>;
+  "OpenCL extension %0 unknown or does not require pragma - ignoring">, InGroup<IgnoredPragmas>;
 def warn_pragma_unsupported_extension : Warning<
   "unsupported OpenCL extension %0 - ignoring">, InGroup<IgnoredPragmas>;
 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 455842412fd0..8242798106ac 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 at +2{{unknown OpenCL extension 'cl_intel_planar_yuv' - ignoring}}
+// expected-warning at +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 02f053fb40d9..76e2cdd47442 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 9124ceba4e2a..dc8bd769e2bd 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 at -2 {{unknown OpenCL extension 'my_ext' - ignoring}}
-// expected-warning at +2 {{unknown OpenCL extension 'my_ext' - ignoring}}
+// expected-warning at -2 {{OpenCL extension 'my_ext' unknown or does not require pragma - ignoring}}
+// expected-warning at +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 d135970b8b02..4d92eff6ae3a 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 at -1{{unknown OpenCL extension '__opencl_c_int64' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_int64' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_3d_image_writes : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_3d_image_writes' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_atomic_order_acq_rel' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_atomic_order_seq_cst' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_device_enqueue' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_device_enqueue' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_fp64 : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_fp64' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_fp64' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_generic_address_space : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_generic_address_space' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_images : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_images' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_images' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_pipes : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_pipes' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_program_scope_global_variables' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_read_write_images' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_read_write_images' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_subgroups : disable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_subgroups' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_subgroups' unknown or does not require pragma - ignoring}}
 
 #pragma OPENCL EXTENSION __opencl_c_int64 : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_int64' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_int64' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_3d_image_writes : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_3d_image_writes' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_atomic_order_acq_rel' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_atomic_order_seq_cst' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_device_enqueue' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_device_enqueue' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_fp64 : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_fp64' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_fp64' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_generic_address_space : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_generic_address_space' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_generic_address_space' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_images : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_images' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_images' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_pipes : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_pipes' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_program_scope_global_variables' - ignoring}}
+//expected-warning at -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 at -1{{unknown OpenCL extension '__opencl_c_read_write_images' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_read_write_images' unknown or does not require pragma - ignoring}}
 #pragma OPENCL EXTENSION __opencl_c_subgroups : enable
-//expected-warning at -1{{unknown OpenCL extension '__opencl_c_subgroups' - ignoring}}
+//expected-warning at -1{{OpenCL extension '__opencl_c_subgroups' unknown or does not require pragma - ignoring}}


        


More information about the cfe-commits mailing list