blob: 512eeeccdc4ad7146c57cffe2bc51b141549d9ef [file] [log] [blame]
Hal Finkelf0417332014-07-17 14:25:55 +00001// RUN: %clang_cc1 -triple i386-mingw32 -fms-extensions -fsyntax-only -verify %s
Hal Finkelbcc06082014-09-07 22:58:14 +00002// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify %s
Hal Finkelf0417332014-07-17 14:25:55 +00003
4int foo(int *a, int i) {
Hal Finkelbcc06082014-09-07 22:58:14 +00005#ifdef _MSC_VER
Hal Finkelf0417332014-07-17 14:25:55 +00006 __assume(i != 4);
Hal Finkelbcc06082014-09-07 22:58:14 +00007 __assume(++i > 2); //expected-warning {{the argument to '__assume' has side effects that will be discarded}}
Hal Finkela8443c32014-07-17 14:49:58 +00008
9 int test = sizeof(struct{char qq[(__assume(i != 5), 7)];});
Hal Finkelbcc06082014-09-07 22:58:14 +000010#else
11 __builtin_assume(i != 4);
12 __builtin_assume(++i > 2); //expected-warning {{the argument to '__builtin_assume' has side effects that will be discarded}}
Hal Finkela8443c32014-07-17 14:49:58 +000013
Hal Finkelbcc06082014-09-07 22:58:14 +000014 int test = sizeof(struct{char qq[(__builtin_assume(i != 5), 7)];});
15#endif
Hal Finkelf0417332014-07-17 14:25:55 +000016 return a[i];
17}
18