// RUN: %clang_cc1 -std=gnu++11 -verify %s template struct check; // expected-note {{template is declared here}} expected-note {{template is declared here}} template<> struct check{}; template<> struct check{}; template<> struct check{}; template int operator""_x() { // #1 expected-warning {{string literal operator templates are a GNU extension}} check chars; // expected-error {{implicit instantiation of undefined template 'check'}} expected-error {{implicit instantiation of undefined template 'check'}} return 1; } void *operator""_x(const char*); // #2 void *a = 123_x; // ok, calls #2 int b = u8"\"ั‚ะตัั‚ ๐€€"_x; // ok, calls #1 int c = u8R"("ั‚ะตัั‚ ๐€€)"_x; // ok, calls #1 int d = "test"_x; // expected-note {{in instantiation of function template specialization 'operator""_x' requested here}} int e = uR"("ั‚ะตัั‚ ๐€€)"_x; int f = UR"("ั‚ะตัั‚ ๐€€)"_x; int g = UR"("ั‚ะตัั‚_๐€€)"_x; // expected-note {{in instantiation of function template specialization 'operator""_x' requested here}}