1*67e74705SXin Li // RUN: %clang_cc1 -std=c++1y %s -include %s -verify 2*67e74705SXin Li 3*67e74705SXin Li #ifndef INCLUDED 4*67e74705SXin Li #define INCLUDED 5*67e74705SXin Li 6*67e74705SXin Li #pragma clang system_header 7*67e74705SXin Li namespace std { 8*67e74705SXin Li using size_t = decltype(sizeof(0)); 9*67e74705SXin Li 10*67e74705SXin Li struct duration {}; 11*67e74705SXin Li duration operator""ns(unsigned long long); 12*67e74705SXin Li duration operator""us(unsigned long long); 13*67e74705SXin Li duration operator""ms(unsigned long long); 14*67e74705SXin Li duration operator""s(unsigned long long); 15*67e74705SXin Li duration operator""min(unsigned long long); 16*67e74705SXin Li duration operator""h(unsigned long long); 17*67e74705SXin Li 18*67e74705SXin Li struct string {}; 19*67e74705SXin Li string operator""s(const char*, size_t); 20*67e74705SXin Li 21*67e74705SXin Li template<typename T> struct complex {}; 22*67e74705SXin Li complex<float> operator""if(long double); 23*67e74705SXin Li complex<float> operator""if(unsigned long long); 24*67e74705SXin Li complex<double> operator""i(long double); 25*67e74705SXin Li complex<double> operator""i(unsigned long long); 26*67e74705SXin Li complex<long double> operator""il(long double); 27*67e74705SXin Li complex<long double> operator""il(unsigned long long); 28*67e74705SXin Li } 29*67e74705SXin Li 30*67e74705SXin Li #else 31*67e74705SXin Li 32*67e74705SXin Li using namespace std; 33*67e74705SXin Li duration a = 1ns, b = 1us, c = 1ms, d = 1s, e = 1min, f = 1h; 34*67e74705SXin Li string s = "foo"s; 35*67e74705SXin Li char error = 'x's; // expected-error {{invalid suffix}} expected-error {{expected ';'}} 36*67e74705SXin Li 37*67e74705SXin Li int _1z = 1z; // expected-error {{invalid suffix}} 38*67e74705SXin Li int _1b = 1b; // expected-error {{invalid digit}} 39*67e74705SXin Li 40*67e74705SXin Li complex<float> cf1 = 1if, cf2 = 2.if, cf3 = 0x3if; 41*67e74705SXin Li complex<double> cd1 = 1i, cd2 = 2.i, cd3 = 0b0110101i; 42*67e74705SXin Li complex<long double> cld1 = 1il, cld2 = 2.il, cld3 = 0047il; 43*67e74705SXin Li 44*67e74705SXin Li #endif 45