// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s template struct is_same { static const bool value = false; }; template struct is_same { static const bool value = true; }; const int&& foo(); int i; struct A { double x; static int y; }; const A* a = new A(); static_assert(is_same::value, ""); static_assert(is_same::value, ""); static_assert(is_samex), double>::value, ""); static_assert(is_samex)), const double&>::value, ""); static_assert(is_samey), int>::value, ""); static_assert(is_samey)), int&>::value, ""); static_assert(is_same(i)), int&&>::value, ""); int f0(int); // expected-note{{possible target}} float f0(float); // expected-note{{possible target}} decltype(f0) f0_a; // expected-error{{reference to overloaded function could not be resolved; did you mean to call it?}}