2011-10-14 06:29:44 +08:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s
|
2009-05-14 02:28:20 +08:00
|
|
|
namespace N1 {
|
|
|
|
|
|
|
|
template<typename T> struct X0 { }; // expected-note{{here}}
|
|
|
|
|
|
|
|
namespace Inner {
|
|
|
|
template<typename T> struct X1 { };
|
|
|
|
}
|
|
|
|
|
|
|
|
template struct X0<int>;
|
|
|
|
template struct Inner::X1<int>;
|
|
|
|
}
|
|
|
|
|
|
|
|
template<typename T> struct X2 { }; // expected-note{{here}}
|
|
|
|
|
|
|
|
template struct ::N1::Inner::X1<float>;
|
|
|
|
|
|
|
|
namespace N2 {
|
|
|
|
using namespace N1;
|
|
|
|
|
2011-10-18 10:28:33 +08:00
|
|
|
template struct X0<double>; // expected-error{{must occur in namespace 'N1'}}
|
2009-05-14 02:28:20 +08:00
|
|
|
|
|
|
|
template struct X2<float>; // expected-error{{at global scope}}
|
|
|
|
}
|