
essence, the redeclaration chain for a class could end up in an inconsistent state while deserializing multiple declarations in that chain, where the circular linked list was not, in fact, circular. Since only two redeclarations of the same entity will get loaded when we're in this state, restore circularity when both have been loaded. Fixes <rdar://problem/10324940> / PR11195. llvm-svn: 143037
22 lines
175 B
C++
22 lines
175 B
C++
class X
|
|
{
|
|
friend class A;
|
|
};
|
|
|
|
|
|
template <typename T1, typename T2>
|
|
class B
|
|
{
|
|
};
|
|
|
|
template <class T>
|
|
struct C
|
|
{
|
|
};
|
|
|
|
class D
|
|
{
|
|
B<D, class A> x;
|
|
friend struct C<A>;
|
|
};
|