1b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smith// RUN: %clang_cc1 -std=c++11 %s -verify 2b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smith 3b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithstruct string; 4b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithnamespace std { 5b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smith using size_t = decltype(sizeof(int)); 6b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smith} 7b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smith 8b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithvoid operator "" _km(long double); // ok 9b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithstring operator "" _i18n(const char*, std::size_t); // ok 10c7629d941557f7179eb8fa8a2e2a74d749cbaf7cJordan Rosetemplate<char...> int operator "" \u03C0(); // ok, UCN for lowercase pi // expected-warning {{reserved}} 11aa9a8ce5d31975900c7243b1508f5111baddacbeRichard Smithfloat operator ""E(const char *); // expected-error {{invalid suffix on literal}} expected-warning {{reserved}} 122fb4ae36825ca3a0cbe7e845c5747062870066beRichard Smithfloat operator " " B(const char *); // expected-error {{must be '""'}} expected-warning {{reserved}} 13b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithstring operator "" 5X(const char *, std::size_t); // expected-error {{expected identifier}} 14b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithdouble operator "" _miles(double); // expected-error {{parameter}} 15b4a7b1e587a232c95d02a8ca10eeba60164fbba1Richard Smithtemplate<char...> int operator "" j(const char*); // expected-error {{parameter}} 162fb4ae36825ca3a0cbe7e845c5747062870066beRichard Smith 17aa9a8ce5d31975900c7243b1508f5111baddacbeRichard Smithfloat operator ""_E(const char *); 18