14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s 24967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 34967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid foo(); 44967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 54967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainartemplate <class T, typename S, int N> 64967a710c84587c654b56c828382219c3937dacbPirama Arumuga NainarT tmain(T argc, S **argv) { 74967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar T i; 84967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 94967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind // expected-error {{expected '(' after 'proc_bind'}} 114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind( // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}} 164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind() // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} 214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}} 264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp distribute parallel for' cannot contain more than one 'proc_bind' clause}} 314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(x) // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} 364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(master) 424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp parallel proc_bind(close) 464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(spread) 494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return T(); 534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarint main(int argc, char **argv) { 564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar int i; 574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind // expected-error {{expected '(' after 'proc_bind'}} 604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind( // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}} 654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind() // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} 704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}} 754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp distribute parallel for' cannot contain more than one 'proc_bind' clause}} 804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(x) // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} 854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(master) 914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar 944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp parallel proc_bind(close) 954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp target 964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp teams 974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#pragma omp distribute parallel for proc_bind(spread) 984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar for (i = 0; i < argc; ++i) 994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar foo(); 1004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar return tmain<int, char, 3>(argc, argv); 1014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar} 102