// RUN: %clang_cc1 -std=c++11 %s -verify void operator "" _a(const char *); namespace N { using ::operator "" _a; void operator "" _b(const char *); } using N::operator "" _b; class C { void operator "" _c(const char *); // expected-error {{must be in a namespace or global scope}} static void operator "" _c(unsigned long long); // expected-error {{must be in a namespace or global scope}} friend void operator "" _d(const char *); }; int operator "" _e; // expected-error {{cannot be the name of a variable}} void f() { int operator "" _f; // expected-error {{cannot be the name of a variable}} } extern "C++" { void operator "" _g(const char *); } template void operator "" _h() {} template<> void operator "" _h<'a', 'b', 'c'>() {} template void operator "" _h<'a', 'b', 'c', 'd'>(); namespace rdar13605348 { class C { double operator"" _x(long double value) { return double(value); } // expected-error{{literal operator 'operator""_x' must be in a namespace or global scope}} double value() { return 3.2_x; } // expected-error{{no matching literal operator for call to}} }; }