brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 01e32fb Raw
117 lines · c
1// RUN: %clang_cc1 -triple x86_64-unknown-linux -verify %s2// RUN: %clang_cc1 -triple i686-unknown-linux -verify %s3// RUN: %clang_cc1 -triple x86_64-unknown-win32 -verify %s4// RUN: %clang_cc1 -triple i686-unknown-win32 -verify %s5 6/* WG14 N629: yes7 * integer constant type rules8 */9 10// expected-no-diagnostics11 12void test_decimal_constants(void) {13  // Easy cases where the value fits into the type you'd expect.14  (void)_Generic(2,    int : 1);15  (void)_Generic(2u,   unsigned int : 1);16  (void)_Generic(2l,   long : 1);17  (void)_Generic(2ul,  unsigned long : 1);18  (void)_Generic(2ll,  long long : 1);19  (void)_Generic(2ull, unsigned long long : 1);20 21#if __INT_WIDTH__ == 1622  #if __LONG_WIDTH__ > 1623    (void)_Generic(65536, long : 1);24    (void)_Generic(65536U, unsigned long : 1);25  #else26    (void)_Generic(65536, long long : 1);27    (void)_Generic(65536U, unsigned long : 1);28  #endif // __LONG_WIDTH__ > 1629#elif __INT_WIDTH__ == 3230  #if __LONG_WIDTH__ > 3231    (void)_Generic(4294967296, long : 1);32    (void)_Generic(4294967296U, unsigned long : 1);33  #else34    (void)_Generic(4294967296, long long : 1);35    (void)_Generic(4294967296U, unsigned long long : 1);36  #endif // __LONG_WIDTH__ > 3237#endif38 39#if __LONG_WIDTH__ > 3240  (void)_Generic(4294967296L, long : 1);41  (void)_Generic(4294967296U, unsigned long : 1);42#else43  (void)_Generic(4294967296L, long long : 1);44  (void)_Generic(4294967296U, unsigned long long : 1);45#endif46}47 48void test_octal_constants(void) {49  (void)_Generic(02,    int : 1);50  (void)_Generic(02u,   unsigned int : 1);51  (void)_Generic(02l,   long : 1);52  (void)_Generic(02ul,  unsigned long : 1);53  (void)_Generic(02ll,  long long : 1);54  (void)_Generic(02ull, unsigned long long : 1);55 56#if __INT_WIDTH__ == 1657  #if __LONG_WIDTH__ > 1658    (void)_Generic(0200000, long : 1);59    (void)_Generic(0200000U, unsigned long : 1);60  #else61    (void)_Generic(0200000, long long : 1);62    (void)_Generic(0200000U, unsigned long : 1);63  #endif // __LONG_WIDTH__ > 1664#elif __INT_WIDTH__ == 3265  #if __LONG_WIDTH__ > 3266    (void)_Generic(040000000000, long : 1);67    (void)_Generic(040000000000U, unsigned long : 1);68  #else69    (void)_Generic(040000000000, long long : 1);70    (void)_Generic(040000000000U, unsigned long long : 1);71  #endif // __LONG_WIDTH__ > 3272#endif73 74#if __LONG_WIDTH__ > 3275  (void)_Generic(040000000000L, long : 1);76  (void)_Generic(040000000000U, unsigned long : 1);77#else78  (void)_Generic(040000000000L, long long : 1);79  (void)_Generic(040000000000U, unsigned long long : 1);80#endif81}82 83void test_hexadecimal_constants(void) {84  (void)_Generic(0x2,    int : 1);85  (void)_Generic(0x2u,   unsigned int : 1);86  (void)_Generic(0x2l,   long : 1);87  (void)_Generic(0x2ul,  unsigned long : 1);88  (void)_Generic(0x2ll,  long long : 1);89  (void)_Generic(0x2ull, unsigned long long : 1);90 91#if __INT_WIDTH__ == 1692  #if __LONG_WIDTH__ > 1693    (void)_Generic(0x10000, long : 1);94    (void)_Generic(0x10000U, unsigned long : 1);95  #else96    (void)_Generic(0x10000, long long : 1);97    (void)_Generic(0x10000U, unsigned long : 1);98  #endif // __LONG_WIDTH__ > 1699#elif __INT_WIDTH__ == 32100  #if __LONG_WIDTH__ > 32101    (void)_Generic(0x100000000, long : 1);102    (void)_Generic(0x100000000U, unsigned long : 1);103  #else104    (void)_Generic(0x100000000, long long : 1);105    (void)_Generic(0x100000000U, unsigned long long : 1);106  #endif // __LONG_WIDTH__ > 32107#endif108 109#if __LONG_WIDTH__ > 32110  (void)_Generic(0x100000000L, long : 1);111  (void)_Generic(0x100000000U, unsigned long : 1);112#else113  (void)_Generic(0x100000000L, long long : 1);114  (void)_Generic(0x100000000U, unsigned long long : 1);115#endif116}117