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