brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · d056fea Raw
168 lines · cpp
1// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s2 3#if 1z != 14#error "z suffix must be recognized by preprocessor"5#endif6#if 1uz != 17#error "uz suffix must be recognized by preprocessor"8#endif9#if !(-1z < 0)10#error "z suffix must be interpreted as signed"11#endif12#if !(-1uz > 0)13#error "uz suffix must be interpreted as unsigned"14#endif15 16void ValidSuffix() {17  // Decimal literals.18  {19    auto a1 = 1z;20    auto a2 = 1Z;21 22    auto a3 = 1uz;23    auto a4 = 1uZ;24    auto a5 = 1Uz;25    auto a6 = 1UZ;26 27    auto a7 = 1zu;28    auto a8 = 1Zu;29    auto a9 = 1zU;30    auto a10 = 1ZU;31 32    auto a11 = 1'2z;33    auto a12 = 1'2Z;34  }35  // Hexadecimal literals.36  {37    auto a1 = 0x1z;38    auto a2 = 0x1Z;39 40    auto a3 = 0x1uz;41    auto a4 = 0x1uZ;42    auto a5 = 0x1Uz;43    auto a6 = 0x1UZ;44 45    auto a7 = 0x1zu;46    auto a8 = 0x1Zu;47    auto a9 = 0x1zU;48    auto a10 = 0x1ZU;49 50    auto a11 = 0x1'2z;51    auto a12 = 0x1'2Z;52  }53  // Binary literals.54  {55    auto a1 = 0b1z;56    auto a2 = 0b1Z;57 58    auto a3 = 0b1uz;59    auto a4 = 0b1uZ;60    auto a5 = 0b1Uz;61    auto a6 = 0b1UZ;62 63    auto a7 = 0b1zu;64    auto a8 = 0b1Zu;65    auto a9 = 0b1zU;66    auto a10 = 0b1ZU;67 68    auto a11 = 0b1'1z;69    auto a12 = 0b1'1Z;70  }71  // Octal literals.72  {73    auto a1 = 01z;74    auto a2 = 01Z;75 76    auto a3 = 01uz;77    auto a4 = 01uZ;78    auto a5 = 01Uz;79    auto a6 = 01UZ;80 81    auto a7 = 01zu;82    auto a8 = 01Zu;83    auto a9 = 01zU;84    auto a10 = 01ZU;85 86    auto a11 = 0'1z;87    auto a12 = 0'1Z;88  }89}90 91void InvalidSuffix() {92  // Long.93  {94    auto a1 = 1lz; // expected-error {{invalid suffix}}95    auto a2 = 1lZ; // expected-error {{invalid suffix}}96    auto a3 = 1Lz; // expected-error {{invalid suffix}}97    auto a4 = 1LZ; // expected-error {{invalid suffix}}98 99    auto a5 = 1zl; // expected-error {{invalid suffix}}100    auto a6 = 1Zl; // expected-error {{invalid suffix}}101    auto a7 = 1zL; // expected-error {{invalid suffix}}102    auto a8 = 1ZL; // expected-error {{invalid suffix}}103 104    auto a9 = 1ulz;  // expected-error {{invalid suffix}}105    auto a10 = 1ulZ; // expected-error {{invalid suffix}}106    auto a11 = 1uLz; // expected-error {{invalid suffix}}107    auto a12 = 1uLZ; // expected-error {{invalid suffix}}108 109    auto a13 = 1uzl; // expected-error {{invalid suffix}}110    auto a14 = 1uZl; // expected-error {{invalid suffix}}111    auto a15 = 1uzL; // expected-error {{invalid suffix}}112    auto a16 = 1uZL; // expected-error {{invalid suffix}}113  }114  // Long long.115  {116    auto a1 = 1llz; // expected-error {{invalid suffix}}117    auto a2 = 1llZ; // expected-error {{invalid suffix}}118    auto a3 = 1LLz; // expected-error {{invalid suffix}}119    auto a4 = 1LLZ; // expected-error {{invalid suffix}}120 121    auto a5 = 1zll; // expected-error {{invalid suffix}}122    auto a6 = 1Zll; // expected-error {{invalid suffix}}123    auto a7 = 1zLL; // expected-error {{invalid suffix}}124    auto a8 = 1ZLL; // expected-error {{invalid suffix}}125 126    auto a9 = 1ullz;  // expected-error {{invalid suffix}}127    auto a10 = 1ullZ; // expected-error {{invalid suffix}}128    auto a11 = 1uLLz; // expected-error {{invalid suffix}}129    auto a12 = 1uLLZ; // expected-error {{invalid suffix}}130 131    auto a13 = 1uzll; // expected-error {{invalid suffix}}132    auto a14 = 1uZll; // expected-error {{invalid suffix}}133    auto a15 = 1uzLL; // expected-error {{invalid suffix}}134    auto a16 = 1uZLL; // expected-error {{invalid suffix}}135  }136  // Floating point.137  {138    auto a1 = 0.1z;   // expected-error {{invalid suffix}}139    auto a2 = 0.1Z;   // expected-error {{invalid suffix}}140    auto a3 = 0.1uz;  // expected-error {{invalid suffix}}141    auto a4 = 0.1uZ;  // expected-error {{invalid suffix}}142    auto a5 = 0.1Uz;  // expected-error {{invalid suffix}}143    auto a6 = 0.1UZ;  // expected-error {{invalid suffix}}144    auto a7 = 0.1zu;  // expected-error {{invalid suffix}}145    auto a8 = 0.1Zu;  // expected-error {{invalid suffix}}146    auto a9 = 0.1zU;  // expected-error {{invalid suffix}}147    auto a10 = 0.1ZU; // expected-error {{invalid suffix}}148 149    auto a11 = 0.1fz;   // expected-error {{invalid suffix}}150    auto a12 = 0.1fZ;   // expected-error {{invalid suffix}}151    auto a13 = 0.1fuz;  // expected-error {{invalid suffix}}152    auto a14 = 0.1fuZ;  // expected-error {{invalid suffix}}153    auto a15 = 0.1fUz;  // expected-error {{invalid suffix}}154    auto a16 = 0.1fUZ;  // expected-error {{invalid suffix}}155    auto a17 = 0.1fzu;  // expected-error {{invalid suffix}}156    auto a18 = 0.1fZu;  // expected-error {{invalid suffix}}157    auto a19 = 0.1fzU;  // expected-error {{invalid suffix}}158    auto a110 = 0.1fZU; // expected-error {{invalid suffix}}159  }160  // Repetitive suffix.161  {162    auto a1 = 1zz; // expected-error {{invalid suffix}}163    auto a2 = 1zZ; // expected-error {{invalid suffix}}164    auto a3 = 1Zz; // expected-error {{invalid suffix}}165    auto a4 = 1ZZ; // expected-error {{invalid suffix}}166  }167}168