1// { dg-do compile } 2 3// Copyright (C) 2007 Free Software Foundation, Inc. 4// Contributed by Nathan Sidwell 21 Jul 2007 <nathan@codesourcery.com> 5 6template <typename T> struct A 7{ 8 typedef const T X; 9 10 struct B; 11}; 12 13template <typename T> struct A<T>::B 14{ 15 typedef volatile typename A<T>::X Y; 16 17 T const volatile *Foo (); 18}; 19 20template<typename T> 21typename A<T>::B::Y *A<T>::B::Foo () 22{ 23 return 0; 24} 25