1 // RUN
: %clang_cc1 %s -verify -fsyntax-only -DSYNTAX
2 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL1.1 -DSYNTAX
3 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL1.2 -DSYNTAX
4 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL2.0 -DSYNTAX
5 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=clc
++1.0 -DSYNTAX
6 // RUN
: %clang_cc1 %s -verify -fsyntax-only -fblocks -DBLOCKS -DSYNTAX
7 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL1.1 -fblocks -DBLOCKS -DSYNTAX
8 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL1.2 -fblocks -DBLOCKS -DSYNTAX
9 // RUN
: %clang_cc1 %s -triple amdgcn--amdhsa -x c -std
=c99 -verify -fsyntax-only -DSYNTAX
10 // RUN
: %clang_cc1 -cl-std
=CL1.1 -cl-strict-aliasing -fblocks %s
2>&1 | FileCheck --check-prefix
=CHECK-INVALID-OPENCL-VERSION11 %s
11 // RUN
: %clang_cc1 -cl-std
=CL1.2 -cl-strict-aliasing -fblocks %s
2>&1 | FileCheck --check-prefix
=CHECK-INVALID-OPENCL-VERSION12 %s
12 // RUN
: %clang_cc1 -cl-std
=CL2.0 -cl-strict-aliasing %s
2>&1 | FileCheck --check-prefix
=CHECK-INVALID-OPENCL-VERSION20 %s
13 // RUN
: %clang_cc1 -cl-std
=clc
++1.0 -cl-strict-aliasing -fblocks %s
2>&1 | FileCheck --check-prefix
=CHECK-INVALID-OPENCLCPP-VERSION10 %s
14 // RUN
: %clang_cc1 %s -verify -fsyntax-only -cl-std
=CL3.0 -cl-ext
=-__opencl_c_device_enqueue -DSYNTAX
20 #ifndef __OPENCL_CPP_VERSION__
21 //expected-error
@-
4{{unknown type name
'class
'}}
22 //expected-error
@-
5{{expected
';' after top level declarator}}
26 typedef int
(^bl_t
)(void);
27 #if defined
(__OPENCL_C_VERSION__) || defined
(__OPENCL_CPP_VERSION__)
28 #if
!defined
(BLOCKS) && (defined(__OPENCL_CPP_VERSION__) || __OPENCL_C_VERSION__
!= CL_VERSION_2_0
)
29 // expected-error
@-
3{{blocks support disabled - compile with -fblocks or for OpenCL C
2.0 or OpenCL C
3.0 with __opencl_c_device_enqueue feature
}}
32 // expected-error
@-
6{{blocks support disabled - compile with -fblocks or pick a deployment target that supports them
}}
35 // CHECK-INVALID-OPENCL-VERSION11
: warning
: OpenCL C version
1.1 does not support the option
'-cl-strict-aliasing
'
36 // CHECK-INVALID-OPENCL-VERSION12
: warning
: OpenCL C version
1.2 does not support the option
'-cl-strict-aliasing
'
37 // CHECK-INVALID-OPENCL-VERSION20
: warning
: OpenCL C version
2.0 does not support the option
'-cl-strict-aliasing
'
38 // CHECK-INVALID-OPENCLCPP-VERSION10
: warning
: C
++ for OpenCL version
1.0 does not support the option
'-cl-strict-aliasing
'