2010-03-12 02:23:02 +08:00
|
|
|
// RUN: %clang_cc1 %s -emit-llvm-only
|
2010-03-10 10:43:01 +08:00
|
|
|
|
|
|
|
namespace test0 {
|
|
|
|
template <typename T> struct X {
|
|
|
|
virtual void foo();
|
|
|
|
virtual void bar();
|
|
|
|
virtual void baz();
|
|
|
|
};
|
|
|
|
|
|
|
|
template <typename T> void X<T>::foo() {}
|
|
|
|
template <typename T> void X<T>::bar() {}
|
|
|
|
template <typename T> void X<T>::baz() {}
|
|
|
|
|
|
|
|
template <> void X<char>::foo() {}
|
|
|
|
template <> void X<char>::bar() {}
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace test1 {
|
|
|
|
template <typename T> struct X {
|
|
|
|
virtual void foo();
|
|
|
|
virtual void bar();
|
|
|
|
virtual void baz();
|
|
|
|
};
|
|
|
|
|
|
|
|
template <typename T> void X<T>::foo() {}
|
|
|
|
template <typename T> void X<T>::bar() {}
|
|
|
|
template <typename T> void X<T>::baz() {}
|
|
|
|
|
|
|
|
template <> void X<char>::bar() {}
|
|
|
|
template <> void X<char>::foo() {}
|
|
|
|
}
|