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