2010-03-11 21:23:02 +03:00
|
|
|
// RUN: %clang_cc1 %s -emit-llvm-only
|
2010-03-10 05:43:01 +03: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() {}
|
|
|
|
}
|