1*67e74705SXin Li // RUN: %clang_cc1 -std=c++11 -verify %s 2*67e74705SXin Li 3*67e74705SXin Li // Note that this puts the expected lines before the directives to work around 4*67e74705SXin Li // limitations in the -verify mode. 5*67e74705SXin Li test(int * List,int Length)6*67e74705SXin Livoid test(int *List, int Length) { 7*67e74705SXin Li int i = 0; 8*67e74705SXin Li 9*67e74705SXin Li #pragma clang loop vectorize(assume_safety) 10*67e74705SXin Li #pragma clang loop interleave(assume_safety) 11*67e74705SXin Li while (i + 1 < Length) { 12*67e74705SXin Li List[i] = i; 13*67e74705SXin Li } 14*67e74705SXin Li 15*67e74705SXin Li /* expected-error {{expected ')'}} */ #pragma clang loop vectorize(assume_safety 16*67e74705SXin Li /* expected-error {{expected ')'}} */ #pragma clang loop interleave(assume_safety 17*67e74705SXin Li 18*67e74705SXin Li /* expected-error {{invalid argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll(assume_safety) 19*67e74705SXin Li /* expected-error {{invalid argument; expected 'enable' or 'disable'}} */ #pragma clang loop distribute(assume_safety) 20*67e74705SXin Li 21*67e74705SXin Li /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop vectorize(badidentifier) 22*67e74705SXin Li /* expected-error {{invalid argument; expected 'enable', 'assume_safety' or 'disable'}} */ #pragma clang loop interleave(badidentifier) 23*67e74705SXin Li /* expected-error {{invalid argument; expected 'enable', 'full' or 'disable'}} */ #pragma clang loop unroll(badidentifier) 24*67e74705SXin Li while (i-7 < Length) { 25*67e74705SXin Li List[i] = i; 26*67e74705SXin Li } 27*67e74705SXin Li 28*67e74705SXin Li /* expected-error {{duplicate directives 'vectorize(assume_safety)' and 'vectorize(enable)'}} */ #pragma clang loop vectorize(enable) 29*67e74705SXin Li #pragma clang loop vectorize(assume_safety) 30*67e74705SXin Li /* expected-error {{duplicate directives 'interleave(assume_safety)' and 'interleave(enable)'}} */ #pragma clang loop interleave(enable) 31*67e74705SXin Li #pragma clang loop interleave(assume_safety) 32*67e74705SXin Li while (i-9 < Length) { 33*67e74705SXin Li List[i] = i; 34*67e74705SXin Li } 35*67e74705SXin Li } 36