// 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}} }; }