1bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s -triple=x86_64-linux-gnu 2bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 3f5256e16dfc425c1d466f6308d4026d529ce9e0bHoward Hinnantusing size_t = decltype(sizeof(int)); 4bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 5b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnantint &operator "" _x1 (const char *); 6b64f8b07c104c6cc986570ac8ee0ed16a9f23976Howard Hinnantdouble &operator "" _x1 (const char *, size_t); 7bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdouble &i1 = "foo"_x1; 8bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdouble &i2 = u8"foo"_x1; 9bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdouble &i3 = L"foo"_x1; // expected-error {{no matching literal operator for call to 'operator""_x1' with arguments of types 'const wchar_t *' and 'unsigned long'}} 10bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant 11bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantchar &operator "" _x1(const wchar_t *, size_t); 12bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantchar &i4 = L"foo"_x1; // ok 13bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdouble &i5 = R"(foo)"_x1; // ok 14bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantdouble &i6 = u\ 15bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant8\ 16bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard HinnantR\ 17bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant"(foo)"\ 18bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant_\ 19bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnantx\ 20bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant1; // ok 21bc8d3f97eb5c958007f2713238472e0c1c8fe02Howard Hinnant