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