1// RUN: %clang_cc1 %s -emit-llvm-only
2
3namespace test0 {
4template <typename T> struct X {
5  virtual void foo();
6  virtual void bar();
7  virtual void baz();
8};
9
10template <typename T> void X<T>::foo() {}
11template <typename T> void X<T>::bar() {}
12template <typename T> void X<T>::baz() {}
13
14template <> void X<char>::foo() {}
15template <> void X<char>::bar() {}
16}
17
18namespace test1 {
19template <typename T> struct X {
20  virtual void foo();
21  virtual void bar();
22  virtual void baz();
23};
24
25template <typename T> void X<T>::foo() {}
26template <typename T> void X<T>::bar() {}
27template <typename T> void X<T>::baz() {}
28
29template <> void X<char>::bar() {}
30template <> void X<char>::foo() {}
31}
32