// RUN: %clang_cc1 -std=c++11 %s -verify -fno-spell-checking

// These test cases are constructed to make clang call ActOnStartOfFunctionDef
// with nullptr.

struct ImplicitDefaultCtor1 {};
struct Foo {
  typedef int NameInClass;
  void f();
};
namespace bar {
// FIXME: Improved our recovery to make this a redeclaration of Foo::f,
// even though this is in the wrong namespace. That will allow name lookup to
// find NameInClass below. Users are likely to hit this when they forget to
// close namespaces.
// expected-error@+1 {{cannot define or redeclare 'f' here}}
void Foo::f() {
  switch (0) { case 0: ImplicitDefaultCtor1 o; }
  // expected-error@+1 {{unknown type name 'NameInClass'}}
  NameInClass var;
}
} // namespace bar

struct ImplicitDefaultCtor2 {};
template <typename T> class TFoo { void f(); };
// expected-error@+1 {{nested name specifier 'decltype(TFoo<T>())'}}
template <typename T> void decltype(TFoo<T>())::f() {
  switch (0) { case 0: ImplicitDefaultCtor1 o; }
}

namespace tpl2 {
struct ImplicitDefaultCtor3 {};
template <class T1> class A {
  template <class T2> class B {
    void mf2();
  };
};
template <class Y>
template <>
// expected-error@+1 {{nested name specifier 'A<Y>::B<double>'}}
void A<Y>::B<double>::mf2() {
  switch (0) { case 0: ImplicitDefaultCtor3 o; }
}
}
