14ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith// RUN: %clang_cc1 -std=c++1y %s -include %s -verify 24ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 34ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith#ifndef INCLUDED 44ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith#define INCLUDED 54ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 64ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith#pragma clang system_header 74ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithnamespace std { 84ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith using size_t = decltype(sizeof(0)); 94ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 104ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith struct duration {}; 1106dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""ns(unsigned long long); 1206dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""us(unsigned long long); 1306dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""ms(unsigned long long); 1406dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""s(unsigned long long); 1506dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""min(unsigned long long); 1606dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith duration operator""h(unsigned long long); 174ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 184ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith struct string {}; 1906dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith string operator""s(const char*, size_t); 2006dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith 2106dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith template<typename T> struct complex {}; 2206dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<float> operator""if(long double); 2306dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<float> operator""if(unsigned long long); 2406dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<double> operator""i(long double); 2506dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<double> operator""i(unsigned long long); 2606dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<long double> operator""il(long double); 2706dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith complex<long double> operator""il(unsigned long long); 284ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith} 294ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 304ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith#else 314ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 324ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithusing namespace std; 334ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithduration a = 1ns, b = 1us, c = 1ms, d = 1s, e = 1min, f = 1h; 344ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithstring s = "foo"s; 354ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithchar error = 'x's; // expected-error {{invalid suffix}} expected-error {{expected ';'}} 364ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 374ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithint _1z = 1z; // expected-error {{invalid suffix}} 384ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smithint _1b = 1b; // expected-error {{invalid digit}} 394ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith 4006dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smithcomplex<float> cf1 = 1if, cf2 = 2.if, cf3 = 0x3if; 4106dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smithcomplex<double> cd1 = 1i, cd2 = 2.i, cd3 = 0b0110101i; 4206dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smithcomplex<long double> cld1 = 1il, cld2 = 2.il, cld3 = 0047il; 4306dd2b317a4bf282f3ac526b5cc4d74c39ed7cedRichard Smith 444ac537b0f07f2efb9fcf081f60d54e6cfb1cf2d5Richard Smith#endif 45