When looking for the template instantiation pattern of a templated entity, consistently select the definition of the pattern if there is one. This means we'll pick the same owning module when we start instantiating a template that we'll later pick when determining which modules are visible during that instantiation. This reinstates r300650, reverted in r300659, with a fix for a regression reported by Chandler after commit. llvm-svn: 300938
14 lines
288 B
C++
14 lines
288 B
C++
BEGIN
|
|
template<typename T = void> struct L;
|
|
struct FriendL {
|
|
template<typename T> friend struct L;
|
|
};
|
|
END
|
|
|
|
namespace DeferredLookup {
|
|
namespace Indirect {
|
|
template<typename, bool = true> struct A {};
|
|
template<typename> struct B { template<typename T> using C = A<T>; };
|
|
}
|
|
}
|