brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 21d62d8 Raw
31 lines · c
1// RUN: %clang_cc1 -triple i386-mingw32 -fms-extensions -fsyntax-only -verify %s2// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fsyntax-only -verify %s3 4int nonconst(void);5int isconst(void) __attribute__((const));6int ispure(int) __attribute__((pure));7 8int foo(int *a, int i) {9#ifdef _MSC_VER10  __assume(i != 4);11  __assume(++i > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}12  __assume(nonconst() > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}13  __assume(isconst() > 2);14  __assume(ispure(i) > 2);15  __assume(ispure(++i) > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}16 17  int test = sizeof(struct{char qq[(__assume(i != 5), 7)];});18#else19  __builtin_assume(i != 4);20  __builtin_assume(++i > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}21  __builtin_assume(nonconst() > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}22  __builtin_assume(isconst() > 2);23  __builtin_assume(ispure(i) > 2);24  __builtin_assume(ispure(++i) > 2); //expected-warning {{assumption is ignored because it contains (potential) side-effects}}25  26  int test = sizeof(struct{char qq[(__builtin_assume(i != 5), 7)];}); // expected-warning {{variable length array}}27#endif28  return a[i];29}30 31