1*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple i386-mingw32 -fms-extensions -fsyntax-only -verify %s 2*0a6a1f1dSLionel Sambuc // RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify %s 3*0a6a1f1dSLionel Sambuc foo(int * a,int i)4*0a6a1f1dSLionel Sambucint foo(int *a, int i) { 5*0a6a1f1dSLionel Sambuc #ifdef _MSC_VER 6*0a6a1f1dSLionel Sambuc __assume(i != 4); 7*0a6a1f1dSLionel Sambuc __assume(++i > 2); //expected-warning {{the argument to '__assume' has side effects that will be discarded}} 8*0a6a1f1dSLionel Sambuc 9*0a6a1f1dSLionel Sambuc int test = sizeof(struct{char qq[(__assume(i != 5), 7)];}); 10*0a6a1f1dSLionel Sambuc #else 11*0a6a1f1dSLionel Sambuc __builtin_assume(i != 4); 12*0a6a1f1dSLionel Sambuc __builtin_assume(++i > 2); //expected-warning {{the argument to '__builtin_assume' has side effects that will be discarded}} 13*0a6a1f1dSLionel Sambuc 14*0a6a1f1dSLionel Sambuc int test = sizeof(struct{char qq[(__builtin_assume(i != 5), 7)];}); 15*0a6a1f1dSLionel Sambuc #endif 16*0a6a1f1dSLionel Sambuc return a[i]; 17*0a6a1f1dSLionel Sambuc } 18*0a6a1f1dSLionel Sambuc 19