blob: 1f131491e62181ad1537aa9d8393b61db3a0fb79 [file] [log] [blame]
Shih-wei Liaof8fd82b2010-02-10 11:10:31 -08001// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3// PR4381
4template<class T> struct X {};
5template<typename T> struct Y : public X<T>::X { };
6
7// PR4621
8class A1 {
9 A1(int x) {}
10};
11template<class C> class B1 : public A1 {
12 B1(C x) : A1(x.x) {}
13};
14class A2 { A2(int x, int y); };
15template <class C> class B2 {
16 A2 x;
17 B2(C x) : x(x.x, x.y) {}
18};
19template <class C> class B3 {
20 C x;
21 B3() : x(1,2) {}
22};
23
24// PR4627
25template<typename _Container> class insert_iterator {
26 _Container* container;
27 insert_iterator(_Container& __x) : container(&__x) {}
28};
29
30// PR4763
31template<typename T> struct s0 {};
32template<typename T> struct s0_traits {};
33template<typename T> struct s1 : s0<typename s0_traits<T>::t0> {
34 s1() {}
35};
36
37// PR6062
38namespace PR6062 {
39 template <typename T>
40 class A : public T::type
41 {
42 A() : T::type()
43 {
44 }
45
46 template <typename U>
47 A(U const& init)
48 : T::type(init)
49 { }
50
51 template<typename U>
52 A(U& init) : U::other_type(init) { }
53 };
54}
55
56template<typename T, typename U>
57struct X0 : T::template apply<U> {
58 X0(int i) : T::template apply<U>(i) { }
59};