summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaTemplate/instantiate-dependent-nested-name.cpp
blob: cb2c946edee0623dea3e00dc5f558159e7d1f81b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// RUN: %clang_cc1 -fsyntax-only -verify %s

// PR4382
template<typename T> struct X { static const T A = 1; };
template<typename T, bool = X<T>::A> struct Y { typedef T A; };
template<typename T> struct Z { typedef typename Y<T>::A A; };
extern int x;
extern Z<int>::A x;

namespace pr21964 {
struct H;
template <class> struct T {
  struct A; // expected-note {{member is declared here}}
  static void B() {
    A::template N<H>; // expected-error {{implicit instantiation of undefined member 'pr21964::T<pr21964::H>::A'}}
  }
};
template struct T<H>; // expected-note {{requested here}}
}
OpenPOWER on IntegriCloud