brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.5 KiB · 6c13fe9 Raw
59 lines · c
1// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c992// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c113// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic -std=c174// RUN: %clang_cc1 -fsyntax-only %s -verify -pedantic5#if __STDC_VERSION__ >= 201112L6// expected-no-diagnostics7#endif8 9// Math stuff10 11float        g0 = __builtin_huge_val();12double       g1 = __builtin_huge_valf();13long double  g2 = __builtin_huge_vall();14float        g3 = __builtin_inf();15double       g4 = __builtin_inff();16long double  g5 = __builtin_infl();17 18// GCC misc stuff19 20extern int f(void);21 22int h0 = __builtin_types_compatible_p(int,float);23//int h1 = __builtin_choose_expr(1, 10, f());24//int h2 = __builtin_expect(0, 0);25int h3 = __builtin_bswap16(0x1234) == 0x3412 ? 1 : f();26int h4 = __builtin_bswap32(0x1234) == 0x34120000 ? 1 : f();27int h5 = __builtin_bswap64(0x1234) == 0x3412000000000000 ? 1 : f();28int h6 = __builtin_bswapg((char)0x12) == (char)0x12 ? 1 : f();29int h7 = __builtin_bswapg((short)(0x1234)) == (short)(0x3412) ? 1 : f();30int h8 = __builtin_bswapg(0x00001234) == 0x34120000 ? 1 : f();31int h9 = __builtin_bswapg(0x0000000000001234ULL) == 0x3412000000000000 ? 1 : f();32short somefunc(void);33 34short t = __builtin_constant_p(5353) ? 42 : somefunc();35 36// The calls to _Static_assert and _Generic produce warnings if the compiler default standard is < c1137#if __STDC_VERSION__ < 201112L38// expected-warning@+9 {{'_Static_assert' is a C11 extension}}39// expected-warning@+9 {{'_Static_assert' is a C11 extension}}40// expected-warning@+9 {{'_Static_assert' is a C11 extension}}41// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}42// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}43// expected-warning@+9 {{'_Static_assert' is a C11 extension}} expected-warning@+9 {{'_Generic' is a C11 extension}}44#endif45 46// PR4468447_Static_assert((__builtin_clz)(1u) >= 15, "");48_Static_assert((__builtin_popcount)(1u) == 1, "");49_Static_assert((__builtin_ctz)(2u) == 1, "");50_Static_assert(_Generic(1u,unsigned:__builtin_clz)(1u) >= 15, "");51_Static_assert(_Generic(1u,unsigned:__builtin_popcount)(1u) == 1, "");52_Static_assert(_Generic(1u,unsigned:__builtin_ctz)(2u) == 1, "");53 54#if __STDC_VERSION__ < 201112L55// expected-warning@+3 {{'_Static_assert' is a C11 extension}}56#endif57__SIZE_TYPE__ strlen(const char*);58_Static_assert((__builtin_constant_p(1) ? (***&strlen)("foo") : 0) == 3, "");59