• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: %clang_cc1 %s -verify -pedantic -fsyntax-only -cl-std=CL2.0
2
3void test1(read_only pipe int p, global int* ptr){
4  int tmp;
5  reserve_id_t rid;
6
7  // read/write_pipe
8  read_pipe(p, &tmp);
9  read_pipe(p, ptr);
10  read_pipe(tmp, p);    // expected-error {{first argument to 'read_pipe' must be a pipe type}}
11  read_pipe(p);   // expected-error {{invalid number of arguments to function: 'read_pipe'}}
12  read_pipe(p, rid, tmp, ptr);
13  read_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'reserve_id_t' having 'int')}}
14  read_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'unsigned int' having 'reserve_id_t')}}
15  read_pipe(p, tmp);   // expected-error {{invalid argument type to function 'read_pipe' (expecting 'int *' having 'int')}}
16  write_pipe(p, ptr);    // expected-error {{invalid pipe access modifier (expecting write_only)}}
17  write_pipe(p, rid, tmp, ptr);    // expected-error {{invalid pipe access modifier (expecting write_only)}}
18
19  // reserve_read/write_pipe
20  reserve_read_pipe(p, tmp);
21  reserve_read_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_read_pipe' (expecting 'unsigned int' having '__global int *')}}
22  work_group_reserve_read_pipe(tmp, tmp);    // expected-error{{first argument to 'work_group_reserve_read_pipe' must be a pipe type}}
23  sub_group_reserve_write_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting write_only)}}
24
25  // commit_read/write_pipe
26  commit_read_pipe(p, rid);
27  commit_read_pipe(tmp, rid);    // expected-error{{first argument to 'commit_read_pipe' must be a pipe type}}
28  work_group_commit_read_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_read_pipe' (expecting 'reserve_id_t' having 'int')}}
29  sub_group_commit_write_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting write_only)}}
30}
31
32void test2(write_only pipe int p, global int* ptr){
33  int tmp;
34  reserve_id_t rid;
35
36  // read/write_pipe
37  write_pipe(p, &tmp);
38  write_pipe(p, ptr);
39  write_pipe(tmp, p);    // expected-error {{first argument to 'write_pipe' must be a pipe type}}
40  write_pipe(p);   // expected-error {{invalid number of arguments to function: 'write_pipe'}}
41  write_pipe(p, rid, tmp, ptr);
42  write_pipe(p, tmp, tmp, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'reserve_id_t' having 'int')}}
43  write_pipe(p, rid, rid, ptr);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'unsigned int' having 'reserve_id_t')}}
44  write_pipe(p, tmp);   // expected-error {{invalid argument type to function 'write_pipe' (expecting 'int *' having 'int')}}
45  read_pipe(p, ptr);    // expected-error {{invalid pipe access modifier (expecting read_only)}}
46  read_pipe(p, rid, tmp, ptr);    // expected-error {{invalid pipe access modifier (expecting read_only)}}
47
48  // reserve_read/write_pipe
49  reserve_write_pipe(p, tmp);
50  reserve_write_pipe(p, ptr);    // expected-error{{invalid argument type to function 'reserve_write_pipe' (expecting 'unsigned int' having '__global int *')}}
51  work_group_reserve_write_pipe(tmp, tmp);    // expected-error{{first argument to 'work_group_reserve_write_pipe' must be a pipe type}}
52  sub_group_reserve_read_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting read_only)}}
53
54  // commit_read/write_pipe
55  commit_write_pipe(p, rid);
56  commit_write_pipe(tmp, rid);    // expected-error{{first argument to 'commit_write_pipe' must be a pipe type}}
57  work_group_commit_write_pipe(p, tmp);    // expected-error{{invalid argument type to function 'work_group_commit_write_pipe' (expecting 'reserve_id_t' having 'int')}}
58  sub_group_commit_read_pipe(p, tmp);    // expected-error{{invalid pipe access modifier (expecting read_only)}}
59}
60
61void test3(){
62  int tmp;
63  get_pipe_num_packets(tmp);    // expected-error {{first argument to 'get_pipe_num_packets' must be a pipe type}}
64  get_pipe_max_packets(tmp);    // expected-error {{first argument to 'get_pipe_max_packets' must be a pipe type}}
65}
66