p1.cpp revision 8e8fb3be5bd78f0564444eca02b404566a5f3b5d
1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3
4template <class T> struct A {
5  static T cond;
6
7  template <class U> struct B {
8    static T twice(U value) {
9      return (cond ? value + value : value);
10    }
11  };
12};
13
14int foo() {
15  A<bool>::cond = true;
16  return A<bool>::B<int>::twice(4);
17}
18
19namespace PR6376 {
20  template<typename T>
21  struct X {
22    template<typename Y>
23    struct Y1 { }; //
24  };
25
26  template<>
27  struct X<float> {
28    template<typename Y>
29    struct Y1 { };
30  };
31
32  template<typename T, typename U>
33  struct Z : public X<T>::template Y1<U> { };
34
35  Z<float, int> z0;
36}
37