1 // { dg-do compile }
2 
3 struct K {
4   struct L {
5     static double j;
6   };
7 };
8 
9 template <typename T>
10 struct M {
11   struct N {
12     static int i;
13   };
14 };
15 
16 template <typename T>
17 struct O {
18   typedef M<T> P;
19   typedef K Q;
20 };
21 
22 template <typename T>
23 int O<T>::P::N::i = 42; // This is obfuscated, but apparently ok.
24 
25 template <typename T>
26 double O<T>::Q::L::j = 42.0; // { dg-error "non-template" }
27